2017-03-03 71 views
4

我正在玩MS Word的Office 365加載項。我有一個對話框來操縱選定的單詞圖像。我需要將該圖像(可能是Base64的值)傳遞給我的對話框,以便在替換回單詞(相同位置)之前可以使用圖像。如何將模型傳遞到Word 2016中的Office 365對話框?

我使用下面的代碼,以顯示彈出:

Office.context.ui.displayDialogAsync("https://" + location.host + "/Views/ImageManager.html", { width: 64, height: 55, requireHTTPS: true }, function (asyncResult) { 
    dialog = asyncResult.value; 
    dialog.addEventHandler(Office.EventType.DialogMessageReceived, processMessage); 
    if (asyncResult.status !== Office.AsyncResultStatus.Succeeded) { 
     return; 
    } 
}); 

事情我想做的事?

當用戶選擇任何圖像在word文檔中播放時,點擊ribbon按鈕打開此對話框,我需要將該圖像傳遞到對話框以顯示在對話框中。

如何將我的圖像模型傳遞給對話框?

回答

1

至少有兩個方面的東西傳遞給對話框:

  • 把它作爲你傳遞給displayDialogAsync()
  • 儲存於window.localStorage在對URL的查詢參數主機腳本,然後從對話框頁面的腳本中檢索它。

更新:您可以投票了這一局開發用戶音色請求對話框和主機之間更好的溝通:https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/suggestions/17196659-improve-custom-dialog

+0

爲此,我想補充一點的localStorage是不是超級安全的,如果你有多個文檔在相同(不同的Word窗口或不同的Word Online選項卡)中打開。所以URL參數可能是最好的,除了它有一個長度限制。你可以做一個混合的方法,存儲在localStorage中使用一個隨機的密鑰,你傳遞的URL(或使該密鑰時間戳?)然後在某個時候扔掉舊值?... –

+0

但是,我認爲那麼多孩子對話可以向父母發出信息,我認爲父母也可以給孩子留言,以形成雙向溝通。讓我檢查一下,然後回覆你。 –