2012-03-19 67 views
2

我的web應用程序需要檢測我們的桌面應用程序是否安裝在用戶的PC上。 (這個應用程序是通過自定義應用程序協議從網絡應用程序啓動的。)我們目前有一個「hack-ish」方法,但它在IE10中被破解。做一些研究,我遇到了這篇文章。有沒有人得到JavaScript msProtocols屬性在IE10中工作?

Understanding Protocols

向底部,它說明了如何在Windows 8 IE10 &,你現在可以檢測爲使用JavaScript特定的應用程序協議處理程序。更多細節可以在這個站點找到:msProtocols property。根據實例,我應該可以做這樣的事情:

if (navigator.msProtocols["myProtocol"]) { 
    location.href = "myProtocol://<Some path under the myProtocol protocol>"; 
} else { 
    // Fallback code for when the "myProtocol" protocol doesn’t exist. 
} 

我試圖得到這個工作,但失敗了。即使使用調試器,並查看導航器對象,也沒有msProtocols屬性。

有沒有人能夠得到這個工作?

+2

找出我自己的問題。應該是我檢查的第一件事情之一,但我的瀏覽器模式和文檔模式設置不正確。一旦我將它們設置爲IE10 - 標準,一切都很好用! – 2012-03-19 17:44:33

回答

1

無論何時您使用Internet Explorer 8+進行測試,請確保您的瀏覽器模式和文檔模式設置爲適當的狀態。例如,如果瀏覽器模式低於Internet Explorer 10並且文檔模式不是標準,則會阻止您訪問msProtocols成員。

按F12鍵顯示開發工具,檢查這些設置。在是否應該使用這個成員與否,the documentation狀態的大局觀:

該成員不支持,不應該被使用。確定指定的協議是否具有關聯的協議處理程序。

無論您是否使用這個成員找到成功,我都會避免它並找到替代方案。

相關問題