Javascript ';onclick';在新选项卡或其他浏览器中打开url的事件
我想让一个按钮(带有url)与用户的浏览器使用的内容动态关联。如果用户正在使用Chrome,则链接将在新选项卡中打开;但是,如果用户正在使用IE,则该链接应在Chrome中打开Javascript ';onclick';在新选项卡或其他浏览器中打开url的事件,javascript,jquery,html,google-chrome,Javascript,Jquery,Html,Google Chrome,我想让一个按钮(带有url)与用户的浏览器使用的内容动态关联。如果用户正在使用Chrome,则链接将在新选项卡中打开;但是,如果用户正在使用IE,则该链接应在Chrome中打开 <input type="button" onclick="openURL()" value="Open Google"> <script> function openURL() { var ver = getInternetExplorerVersion();
<input type="button" onclick="openURL()" value="Open Google">
<script>
function openURL()
{
var ver = getInternetExplorerVersion();
var shell = new ActiveXObject("WScript.Shell");
if ( ver = -1 )
shell.run("Chrome www.google.com");
else
window.open('www.google.com','_blank');
}
</script>
我无法使以下代码在Chrome中工作,但这在IE9中工作
我从其他一些帖子中得到了有用的代码
以下内容将确定/检查用户所在的浏览器:
function getInternetExplorerVersion()
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
上面的代码片段工作正常。
我下面的代码在IE中可以无缝工作,但在Chrome中不能
<input type="button" onclick="openURL()" value="Open Google">
<script>
function openURL()
{
var ver = getInternetExplorerVersion();
var shell = new ActiveXObject("WScript.Shell");
if ( ver = -1 )
shell.run("Chrome www.google.com");
else
window.open('www.google.com','_blank');
}
</script>
函数openURL()
{
var ver=getInternetExplorerVersion();
var shell=新的ActiveXObject(“WScript.shell”);
if(ver=-1)
shell.run(“Chrome www.google.com”);
其他的
window.open('www.google.com','u blank');
}
Chrome在ActiveXObject行上给出了一个错误,因此您应该只向IE公开该代码。假设IE中ver
总是给出一个非-1
的数字,您应该尝试以下方法:
function openURL() {
var ver = getInternetExplorerVersion()
if ( ver != -1 ) {
// IE
var shell = new ActiveXObject("WScript.Shell");
shell.run("Chrome www.google.com");
} else {
// other browsers
window.open('//www.google.com','_blank');
}
}
当然,chrome正在读取您的代码,您只是没有看到错误。按F12打开浏览器开发工具并转到控制台选项卡查看脚本错误。尝试使用完整url
窗口。打开('http://www.google.com');代码>@MantasČkanauskas这不是问题所在though@avrilalejandro让我try@oozmac简单地说,chrome不读取代码BTW,我只是签入IE,并且getInternetExplorerVersion()
在IE中也返回-1。。。所以那个代码是不可靠的。所以,它似乎只在IE中起作用,因为你的if-声明是错误的。非常感谢你花时间解决这个问题。它在铬上工作得很好。你是最棒的,不客气。您是否修复了getInternetExplorerVersion函数?它在IE11中没有给我正确的版本。此外,shell.run也不起作用,但这可能是activeX问题。是的,对于IE11,现在正在使用字符串Trident/
,如果您的意思是在chrome中单击链接将在IE中打开,您可以参考此链接。。。也许这是可能的,但我不知道。我甚至不知道IE在另一个浏览器中打开链接的技巧。我想这与ActiveX有关。