我无法找到在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 + '"');
答案 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插件项目经理