我很难找到一种方法来存储office.js外接程序在Mac上的持久设置。
在windows上,localStorage工作得很好,因为它保存了通过关闭和打开单词而持续存在的设置。
在Mac localStorage上,即使是通过刷新或关闭和打开外接程序,也不会坚持关闭和打开单词。
下面是一个简单的代码示例:
var settingString = 'mySetting';
var oldValue = localStorage.getItem(settingString);
write('oldValue: "' + oldValue + '"');
var d = new Date();
var newValue = d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();
localStorage.setItem(settingString, newValue);
write('newValue: "' + newValue + '"');发布于 2016-08-02 17:19:50
iOS目前有一个bug,它阻止我们解决这个localStorage问题。同时,您有两个潜在的解决办法:
Cookies
如果希望在文档中持久化设置,请使用JavaScript cookies (w3schools文档),直到错误得到修复为止:
var settingString = 'mySetting';
var oldValue;
var myCookies = document.cookie.split(';');
for(var i = 0;i < myCookies.length;i++){
var myCookie = myCookies[i].trim();
if(myCookie.indexOf(settingString + "=") == 0){
oldValue = myCookie.substring(settingString + 1,myCookie.length);
}
}
write('oldValue: "' + oldValue + '"');
var d = new Date();
var newValue = d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();
var expiry = d.setTime(d.getTime() + (14 * 86400000)); // # milliseconds in a day
document.cookie = settingString + "=" + newValue + "; expires=" + expiry.toGMTString();
write('newValue: "' + newValue + '"');设置
如果仅在当前文档中持久化该值就足够了,则可以使用Office (Office.js设置对象文档):
var settingString = 'mySetting';
var oldValue = Office.context.Settings.get(settingString);
write('oldValue: "' + oldValue + '"');
var d = new Date();
var newValue = d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();
Office.context.Settings.set(settingString, newValue);
Office.context.Settings.saveAsync(function(asyncResult){
write('newValue: "' + newValue + '"');
});-Michael Saunders,Office外接程序的程序经理
https://stackoverflow.com/questions/38716476
复制相似问题