有没有人得到javascript msProtocols属性在IE10中工作?

时间:2012-03-19 16:39:28

标签: javascript windows-8 internet-explorer-10

我的网络应用程序需要检测我们的桌面应用程序是否安装在用户的PC上。 (此应用程序是通过自定义应用程序协议从Web应用程序启动的。)我们目前有一个" hack-ish"方法工作,但它在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属性。

有没有人能够让这个工作?

1 个答案:

答案 0 :(得分:1)

无论何时使用Internet Explorer 8+测试内容,请确保将浏览器模式和文档模式设置为适当的状态。例如,如果浏览器模式低于Internet Explorer 10,而文档模式不是标准,则会阻止您访问msProtocols成员。

按F12查看这些设置以显示开发人员工具。在你是否应该使用这个成员的大局中,the documentation表示:

  

此成员不受支持且不应使用。确定指定的协议是否具有关联的协议处理程序。

无论您是否成功使用此成员,我都会避免使用此成员。