2

我有一個寫在新的JavaScript API的Office加載項,在它裏面,我有一個JS功能,它後,一些邏輯打開一個Web應用程序使用window.open(url, '_blank')展望JavaScript的API - window.open不工作從Outlook 2016桌面/ Windows

它的工作原理,從被稱爲當一個新窗口中加載在兩個窗格中的Outlook Web,localhost託管加載項,以及在Heroku上部署後。

但是,如果從命令(功能區上的加載項按鈕)調用它,它只能工作當加載項駐留在本地主機上時,在將它部署到heroku上後,加載項工作將顯示功能區,執行JS邏輯,但window.open什麼都不做。

看起來像打開一個新窗口的唯一方法是使用Office.context.ui.displayDialogAsync,但即使如此,它只有在頁面與加載項代碼位於相同的原點時纔有效。

我會認爲有一些安全限制,但爲什麼然後在localhost上託管呢?有什麼辦法,使用新的JavaScript API從Outlook中的命令打開瀏覽器窗口?

回答

1

我這方面的經驗一直認爲window.open是不能跨越不同的平臺,您可以使用Office.context.ui.displayDialogAsync哪種類型部隊的持續可靠。正如你所提到的,如果你試圖打開一個不在你的域名上的頁面,它會對你產生影響。我發現有一對夫婦的解決這個辦法根據您的使用情況下,可能是可行的:

  1. 您可以更新清單的<AppDomains>部分以包含要打開的窗口的網站。本節充當一種白名單。
  2. 你可以指向你的域中的一個頁面,其靈魂目的是將你重定向到其他地方。我沒有碰到重定向窗口的限制,只是打開它。我使用這個方法以及qstring參數來根據需要控制重定向。
+0

我在OWA IE和OWA Safari中混合了結果並重定向到另一個域(按照您的第2點)。你願意分享一些關於你的重定向代碼的細節嗎?也許創建一個新問題並用一些細節回答它?謝謝。 – Carbo

0

我認爲window.location.href會爲你工作。

window.location.href = URL