2016-08-02 7 views
2

Mac上のoffice.jsアドインの永続的な設定を保存する方法がわかりません。OSX/Macのアドイン固定設定

Windowsの場合、localStorageは、Wordを閉じて開いても設定が保存されるため、完璧に動作します。

Macの場合、localStorageは、アドインのリフレッシュまたは閉じると開いても、Wordを閉じて開いても保持されません。ここで

は、単純なコードサンプルです:iOS版は現在まだこのの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 + '"'); 

答えて

1

。バグが修正されるまで

クッキー

あなたが設定は、文書間で保持されるようにしたい場合は、JavaScriptのクッキー(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 + '"'); 
一方で、次の2つの可能性の回避策を持っています

設定

現在のドキュメントでのみ値を保持することがあれば、オフィス設定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サンダース、Officeのプログラムマネージャアドイン

+0

あなたの迅速な応答をありがとう!私は実際には運がないクッキーで試してみましたが、何か間違ったことをしている可能性があります。私はあなたのコードを月曜日に試し、それがどのようになっているかを教えてくれます。 – jkh

+0

私はクッキーに保存しようとしましたが、私は45000文字のようなものを持っていて、それはクッキーにはあまりにも多いようです。これを解決する他の方法はありますか? – jkh

関連する問題