我正在开发一个工具,可以通过快捷方式一次打开多个页面,用于打开每日网站或查询多个搜索引擎的短语等。在Firefox、Internet Explorer和Opera中,假设您已经为该域名解除了弹出窗口拦截,代码按预期工作。
然而,在Chrome中,如果链接在页面加载时自动打开,则会在新窗口中打开网站,而不是在标签页中打开。如果注释掉openAll()并单击按钮或按键,则页面会在标签页中打开。请注意,它调用的是完全相同的函数。
我找到的最好的解决方案(这并不意味着很好)是使用One Window扩展程序。它可以工作,但你可以看到新窗口打开然后被吸回去,并且它阻止你使用Ctrl-N打开新窗口,强制你拖动标签页以使用另一个Chrome窗口。
我可以理解没有编程方式来更改这个问题,因为它是浏览器设置,但作为工具的用户,所有的网站都在新窗口中打开是很烦人的。是否有Chrome设置或扩展程序,可以在加载链接时自动将它们打开在标签页中?我意识到打开一堆窗口是浏览器要防止的事情,但这是我想允许的一次。
<input id="openAllBtn" type="button" value="Open all links"> (Or press any key)
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
function openAll() {
window.open('http://yahoo.com/');
window.location.replace('http://www.bing.com/');
return false;
}
$(document).ready(function() {
$(document).bind('keypress', openAll);
$("#openAllBtn").bind("click", openAll);
openAll();
});
</script>
这是代码的Fiddle链接:http://jsfiddle.net/sfzjR/。
target='_blank'
链接。 //通过jQuery按公共类收集所有元素。 //在一定延迟后连续触发每个元素的点击事件。 //允许用户随时通过再次单击按钮停止打开链接,可能是通过终止setTimeout函数来完成的。 //这样做的好处是当用户单击并打开70个链接时不会崩溃或DOS浏览器。 - Kzqai