[英]How do I detect if the user is using Excel online or Excel desktop
我已經看到了另一個答案,但我無法讓它發揮作用,我也不能再問一個問題。
如何確定 Office 加載項是在 Excel 還是 Excel Online 下運行?
我發現經常出現 Excel Online 與 Excel Desktop 的行為不同的情況。 我知道它應該但它沒有,所以我真的需要能夠控制行為讓我擺脫熱點。
我如何知道我使用的是哪個版本的 Excel。
我已經看到以下代碼,但它只是掛起我的 javascript:
if (Microsoft.Office.WebExtension.context.document instanceof OSF.DDA.ExcelWebAppDocument) {
//Your app running on the web
}
if (Microsoft.Office.WebExtension.context.document instanceof OSF.DDA.ExcelDocument) {
//Your app running in excel
}
問題與 OSF.DDA 有關....這些在我的智能感知中沒有出現,所以我想知道,我是否缺少某些東西?
快速回答是您可以檢查加載項是否在 iframe 中運行:
if(window.top == window){
// the add-in is not running in Excel Online
}
但是,我們建議您檢查您需要的實際行為或能力——這種方法在未來的變化中會更加穩健。 假設您需要當前在 Excel Online 中不可用的特定 Excel API。 然后按照指定 Office 主機和 API 要求的指南進行操作。 例如,您可以檢查:
if (Office.context.requirements.isSetSupported("ExcelApi", 1.3)){
// use the Excel 1.3 API set which currently isn't available in Excel Online but will be in the future.
}
另一種可能性是,您實際需要的是特定的瀏覽器功能,根據用戶訪問 Office Online 所使用的瀏覽器,該功能可能不可用。 然后我推薦的解決方案再次是直接檢查您需要的功能,例如:
if(window.localStorage){
// the browser that the user is accessing Excel Online with has the local storage capability that you need.
}
-Michael(Office 插件的 PM)
我使用了無腳本選項。 函數 INFO 在桌面 excel 中工作,但在基於 Web 的視圖中出錯。
=信息(“目錄”)
在桌面視圖中它給出了一個路徑,在 web 中它給出了錯誤,所以我使用 =ISERROR() 來檢查使用了哪個視圖。
目前的做法是:
if (Office.context.platform === Office.PlatformType.OfficeOnline) {
...
}
就像ranno說的,但我用...
=IFERROR(IF(INFO("system")="pcdos","PC","Net"),"Net")
因為就我而言,Mac 和 Web 一樣糟糕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.