我在 Firefox 上运行我的网络应用程序。我在其中一个页面上有超链接,当我点击它时,它会打开另一个应用程序作为新的弹出窗口。但 Firefox 不支持该应用程序。所以我想在 Internet Explorer 中打开它,即,虽然我在 Firefox 上运行该应用程序,但该特定弹出窗口应该在 Internet Explorer 中打开。我用它来打开新窗口:
var win = window.open(url, "NewWindow", strFeatures);
我在 Firefox 上运行我的网络应用程序。我在其中一个页面上有超链接,当我点击它时,它会打开另一个应用程序作为新的弹出窗口。但 Firefox 不支持该应用程序。所以我想在 Internet Explorer 中打开它,即,虽然我在 Firefox 上运行该应用程序,但该特定弹出窗口应该在 Internet Explorer 中打开。我用它来打开新窗口:
var win = window.open(url, "NewWindow", strFeatures);
你不能只用普通的 JavaScript 来做到这一点;正如 Levi 指出的那样,如果可以,那将是可用性和安全性的噩梦。
也就是说,有几种方法可以让这样的事情发挥作用。例如,Firefox 插件可以启动外部程序,因此您可以编写这样的插件来在 IE 中打开您的应用程序,并要求您的用户安装它(或者让管理员为他们预安装,如果这样的话)例如,用于托管工作场所设置中的内部应用程序)。
另一种可能性可能是使用自定义 URL 方案(如myapp:
)链接到您的应用程序,并注册该 URL 方案以在 IE 中打开(或者,更确切地说,在某种采用自定义 URL 的包装器脚本中,将其转换为一个普通的 HTTP URL,并在 IE 中打开它)。不过,这又需要配置(并且可能在其上安装脚本)最终用户的计算机,因此它可能仅适用于办公室或类似环境。
请注意,这两种解决方案都具有您应该牢记的安全隐患。特别是,您为它们使用的任何加载项或脚本应该只适用于指向您的应用程序的特定 URL,并且应该拒绝打开任何其他人可能试图提供它的 URL。
在任何情况下,如果你想为一个公共网站做到这一点,请记住,有没有办法可以让这个工作的Linux / Mac用户没有谁具有IE开始。甚至许多Windows用户可能不太愿意使用IE(更不用说安装不可信扩展!)没有一个非常好的理由; 毕竟,他们首先选择使用 Firefox(或 Chrome 或 Opera 或其他)大概是有原因的。
这是不可能的,而且是有充分理由的。想想一个聪明的人——可以说——如果他们可以导致各种程序在你的计算机上运行,因为你点击了一个网站上的链接......
这就是您想要做的...通过单击浏览器中的链接运行另一个本机应用程序。
为什么不直接使用 Internet Explorer,因为它适用于弹出窗口?