我有一个使用javascript提交表单的链接,如下所示:
<a href="javascript:document.some_form.submit()">some link</a>
但是,这将指向供应商提供的应用程序,当然只能在IE中运行。如果用户使用其他浏览器,有没有办法在IE中打开此链接?
答案 0 :(得分:10)
不将编译代码放在用户的机器上,那么很可能,没有。它需要您向操作系统指定要运行的特定程序,这将违反当今市场上大多数浏览器的安全限制。
您可能能够为每个主要浏览器供应商创建插件,这些插件将拦截链接并在IE中打开它,但这变得乏味,因为每个浏览器都有不同的模型。最重要的是,你必须在每台机器上安装你的插件,用户可能不会对此感兴趣。
此处最好的选择是告知用户必须在IE中浏览该网站,如果可能,请与供应商合作,使其在其他浏览器中运行。
另一种可能性是您可以在客户端程序中托管您的应用程序和供应商应用程序,该程序使用嵌入式WebBrowser控件,实际上是IE。
答案 1 :(得分:4)
不,没有。这将是一个严重的安全风险 - 利用Internet Explorer错误的网站将能够以这种方式感染Mozilla Firefox上的用户。
只是发出一个警告,它是一个需要IE的外部网站(如果他们已经在IE中,可能会使用用户代理嗅探来避免显示它。)
答案 2 :(得分:1)
我不这么认为,因为你必须在客户端计算机上启动/激活程序。您可以重定向提交并警告用户,如果他不在IE中,并在这种情况下返回false。链接的语法可能更好:
<a href="#dummy" onclick="document.some_form.submit()">some link</a>
答案 3 :(得分:0)
如果点击它的人没有使用Internet Explorer并打开新窗口,显示DIV或弹出alert()
通知,那么你可以做的(我已经完成)是让链接不起作用他们必须使用Internet Explorer才能使目标站点正常工作。
类似的东西:
<a href="/enablejavascript.html"
onclick="
if (window.external && 'undefined' !== typeof window.external.AddFavorite) {
document.forms['some_form'].submit();
} else {
alert('You must be using Internet Explorer to use this website.');
}
return false;
">some link</a>
window.external.AddFavorite(据我所知)仅在Internet Explorer中可用,因此使用它来检测IE应该是相当安全的。您还可以检查MSIE
的{{3}},但某些浏览器(如Opera)可能会欺骗IE用户代理。