Window.Location无法在Chrome中打开新标签页

时间:2013-11-16 11:40:34

标签: javascript html5 navigation standards specifications

我有一个这样的网页(伪代码):

<script>
 function clicked(e) {
   url = (find first a inside e).href;
   window.location.href = url;
 }
</script>
<div onclick="clicked(this)">
 <a href="www.google.com>google</a>
</div>

这种行为在chrome和其他浏览器中有所不同。当我点击div上的 MIDDLE 按钮时,我得到以下行为:

  • IE,FF和Opera在新标签/窗口中打开www.google.com
  • Chrome会在当前窗口中打开Goog​​le。

我知道如何解决这个问题,但我的问题是遵循W3C标准的正确行为是什么?

  • 我发现当脚本更改href属性时,它应该在内部调用assign方法。
  • this document中,有一条声明说:

      

    必须使用assign()和replace()方法进行导航   作为源浏览的现任脚本的浏览上下文   上下文。

    如果我理解正确,这意味着在这一步JS仍在使用原始窗口

  • Here我找到了浏览上下文导航的说明。似乎没有解释为什么要打开新标签。第2步允许创建新窗口,但我不确定此步骤适用于我的情况。

      

    在所有这些情况下,用户代理可以另外提供打开新资源...

否则,浏览器似乎没有理由打开新标签页。

是否有一些标准说明在这种情况下该怎么做,或者这是浏览器作者如何处理它的选择?这是Chrome或FF,IE,Opera中的错误吗?我错过了什么吗?

0 个答案:

没有答案