Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ';onclick';在新选项卡或其他浏览器中打开url的事件_Javascript_Jquery_Html_Google Chrome - Fatal编程技术网

Javascript ';onclick';在新选项卡或其他浏览器中打开url的事件

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();

我想让一个按钮(带有url)与用户的浏览器使用的内容动态关联。如果用户正在使用Chrome,则链接将在新选项卡中打开;但是,如果用户正在使用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>
我无法使以下代码在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有关。