【发布时间】:2011-09-24 14:44:30
【问题描述】:
我正在开发一种工具,可让您使用快捷方式一次打开多个页面,用于打开您的日常网站或查询多个搜索引擎以查找短语。在 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>
【问题讨论】:
-
您使用的是哪个版本的 chrome?您提供的 jsfiddle 为我打开了 2 个 chrome 选项卡。
-
让我再试一次。以下是我将采取的措施来制定您正在寻找的一般行为://为您要打开的每个链接创建简单的
target='_blank'链接。 // 通过 jQuery 中的一个公共类收集所有元素。 // 在一定的延迟后,依次触发每个的点击事件。 // 允许用户在任何时候通过再次单击按钮来停止打开链接,大概是通过杀死一个 setTimeout 函数。 // 这样的好处是,当他们点击并打开 70 个链接时,浏览器的浏览器不会崩溃或停止运行。 -
@matzahboy 我正在使用 Chrome 13.0.782.32 beta-m 并使用最新的 Chromium 开发版本进行了测试。小提琴对 openAll() 的调用被注释掉了。尝试取消注释然后运行它。
-
@Tchalvak 我可以这样做,但问题仍然存在 - 链接将作为新 Windows 打开。
标签: javascript html google-chrome tabs