2

我无法找到在 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 + '"');
4

1 回答 1

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 设置对象文档):

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 加载项项目经理

于 2016-08-02T17:19:50.727 回答