OSX / Mac中的加载项持久性设置

时间:2016-08-02 09:20:22

标签: ms-office office-js word-addins

我无法找到在Mac上存储office.js加载项的持久设置的方法。

在Windows上,localStorage非常有效,因为它可以保存通过关闭和打开Word而保留的设置。

在Mac上,localStorage不会保持关闭和打开Word,即使刷新或关闭并打开加载项也不会。

这是一个简单的代码示例:

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 + '"');

1 个答案:

答案 0 :(得分:1)

iOS目前有一个错误,阻止我们修复此localStorage问题。与此同时,您有两种可能的解决方法:

<强>缓存

如果您希望将设置保留在文档中,请使用JavaScript Cookie(w3schools doc),直到修复错误:

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设置API(Office.js Settings object doc):

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插件项目经理