【问题标题】:Open complete/ regular browser window from pop-up从弹出窗口打开完整/常规浏览器窗口
【发布时间】:2017-09-29 23:25:34
【问题描述】:
在我的网站中,我有一个在页面加载时打开的弹出窗口。此弹出窗口包含一个链接
<a href='newpage.html' target='_blank'>click here to go to page</a>
当前当用户点击链接时,新页面要么在同一个弹出窗口中打开,要么打开一个新的弹出窗口。
我怎样才能做到这一点,而不是在弹出窗口中打开新页面,而是在常规浏览器窗口中打开。
是否有任何工具以及实现此目的的最佳方法是什么?
【问题讨论】:
标签:
javascript
jquery
ruby
browser
popupwindow
【解决方案1】:
如果您的意思是让页面作为新选项卡而不是弹出窗口打开,我相信带有“_blank”属性的 window.open 的默认行为应该这样做。像这样,在普通的 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();
});
但是,值得注意的是,大多数(如果不是全部)浏览器允许用户覆盖该行为并强制窗口始终作为新选项卡或新窗口打开。如果您没有看到预期的结果,请在测试时记住这一点。据我所知,如果用户指定了行为,则无法覆盖它(实际上也不应该有)。