从弹出窗口打开完整/常规浏览器窗口

时间:2017-09-29 23:25:34

标签: javascript jquery ruby browser popupwindow

在我的网站中,我有一个弹出窗口,可以在页面加载时打开。此弹出窗口包含一个链接

<a href='newpage.html' target='_blank'>click here to go to page</a>

目前,当用户点击链接时,新页面会在同一弹出窗口中打开,或者会打开一个新的弹出窗口。

如何实现它,而不是在弹出窗口中打开新页面,它会在常规浏览器窗口中打开。

是否有任何工具以及实现此目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

如果您的意思是将页面打开为新选项卡而不是弹出窗口,我相信window.open的默认行为与&#39; _blank&#39;属性应该这样做。在常规的JS中这样的东西:

var links = document.querySelectorAll('[target="_blank"]');
Array.prototype.forEach.call(links, function (link) {
  link.addEventListener('click', function (e) {
    e.preventDefault();
    var win = window.open('http://www.example.com', '_blank');
    win.focus();
  });
});

或者在JQuery中:

$('[target="_blank"]').click(function(e) {
  e.preventDefault();
  var win = window.open('http://www.google.com', '_blank');
  win.focus();
});

但是,值得注意的是,大多数(如果不是全部)浏览器允许用户覆盖该行为并强制窗口始终作为新选项卡或新窗口打开。如果您没有看到预期结果,请在测试时牢记这一点。据我所知,如果用户指定了行为,则无法覆盖它(也不应该覆盖它)。