【发布时间】:2011-06-07 12:34:59
【问题描述】:
我正在尝试像这样打开一个新窗口:
$('#wrapper').click(function() {
window.setTimeout(function() {
//alert('hi');
window.open("http://example.com", "ExternalLinks", "resizable=yes, scrollbars=yes, status=yes");
}, 1000);
});
这适用于 Firefox,但不适用于 Chrome 或 Safari(到目前为止,我刚刚在 Mac 上进行了测试)。 alert() 适用于所有浏览器,因此似乎有些东西阻止了 window.open 在 Safari/Chrome 中执行。此外,如果我删除 setTimeout 并只调用 window.open 那么它在所有 3 个浏览器中都可以工作。这几乎就像如果window.open 嵌套在距离click 事件太远的地方,那么它在 Safari/Chrome 中不起作用。
所以你知道,我有一个全 Flash 网站,我正在尝试让外部链接在新窗口中打开,所以我正在读取 URL 中的井号标签(例如 htp://example.html)。 com/#/facebook/) 并且如果它与某些项目匹配,那么我将调用 window.open 打开特定的 URL。我无权访问 Flash 源,否则我会在那里处理。
有什么想法吗?
【问题讨论】:
标签: javascript cross-browser window.open