我可以通过Outlook Add-in中的侧面板访问漫游设置。但是当我尝试访问漫游设置时,如果UI对话框(DialogAsync)已打开。它变得未定义。
var _settings = Office.context.roamingSettings;
var numberDetails = _settings.get('PHONENUMBERSLIST');
答案 0 :(得分:3)
在对话框中只能调用两个Office.js API:
请参阅is文章中关于1/3向下的说明:Use the Dialog API in your Office Add-ins
答案 1 :(得分:1)
RoamingSettings
仅在创建它的框架中可用。如果需要在对话框和侧面板之间共享某些值,可以将这些值作为参数传递到url:
var url = new URI('Dialog/myDialog.html').absoluteTo(window.location).toString();
url += '?myvalue=' + Office.context.roamingSettings.get('myvalue')
+ '&othervalue=' + Office.context.roamingSettings.get('othervalue');
var dialogOptions = { width: 20, height: 35, displayInIframe: true };
Office.context.ui.displayDialogAsync(url, dialogOptions, function (result) {
settingsDialog = result.value;
settingsDialog.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogMessageReceived, receiveSettingsMessage);
settingsDialog.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogEventReceived, settingsDialogClosed);
});
然后,在对话框中,您可以使用它们或使用$(document).ready()
在getUrlParameter('myvalue')
内再次设置它们。
您还可以使用以下方法将所需的值发送回侧面板:
function sendMessage(param) {
Office.context.ui.messageParent(JSON.stringify(param));
}