为啥以下脚本不打开新标签页或页面?

Posted

技术标签:

【中文标题】为啥以下脚本不打开新标签页或页面?【英文标题】:Why does the following script not open a new tab or page?为什么以下脚本不打开新标签页或页面? 【发布时间】:2014-06-20 04:44:47 【问题描述】:

我正在使用 javascript 函数从我的网站导航到另一个网站。我也试图在单击按钮时打开一个新页面,但它在self 而不是blank 上导航。为什么会这样?

html

<p style="text-align:center;">
<input style="font-size:large;" id="btamen" type="button" value="Visit Website">
</p>

JavaScript

<script type="text/javascript">
$("#btamen").click(function() 
    window.location.href = 'http://www.google.com'

    link.target = '_blank';
);
</script>

【问题讨论】:

只用谷歌 ;) ***.com/questions/19851782/… 【参考方案1】:

这一行:window.location.href = 'http://www.google.com' 将始终用新网址替换当前页面。

我不知道下一页中的 link 是什么,但该代码甚至不会执行,因为页面重定向并且上下文丢失了。

如果你想要这样,那就这样做:

window.open('http://www.google.com', '_blank').focus();

此外,您不能保证它会打开,因为浏览器可能 会阻止它。有点像弹出窗口拦截器。

【讨论】:

【参考方案2】:

我认为您无法控制它在新标签页中打开。所以你必须解决,我所做的是:

<a href="" target="_blank" id="btamen_link">
  <button type="button" id="btamen">
    Click
  </button>
</a>

还有 jquery:

<script type="text/javascript">
  $(document).ready(function()
    $('#btamen').click(function()
      $('#btamen_link').attr('href', 'http://www.google.com');
      $('#btamen_link').click();
    );
  );
</script>

【讨论】:

以上是关于为啥以下脚本不打开新标签页或页面?的主要内容,如果未能解决你的问题,请参考以下文章

在 Firefox/Chrome 上打开新标签页或窗口时,如何获得新的浏览器会话?

为啥浏览器打开一个页面不自动跳转了

如何新打开一个标签页后,页面不跳转到新的标签页,而是停留在当前标签页?

Nuxt:如何在新标签页中打开页面

chrome实用快捷键

如何防止同一个网站打开多个标签页?