【问题标题】:window.open losing control in click event handler in Firefoxwindow.open 在 Firefox 的点击事件处理程序中失去控制
【发布时间】:2013-05-02 18:43:34
【问题描述】:

我正在尝试在单击事件的事件处理程序中使用window.open 打开一个新窗口:

var onButtonClick = function() {
    alert('start');
    window.open('http://www.google.com', 'goog', 'width=800,height=400');
    alert('done');
};
var element = document.getElementById("button");
element.addEventListener('click', onButtonClick);

http://jsfiddle.net/eGNpe/

我希望有一个提示“开始”,一个提示“结束”,以及一个要打开的窗口。 这在 linux 上的 Chrome 中有效,但在 Ubunutu 上的 Firefox 20.0 中,我只收到第一个警报,表明在 window.open 方法的某个地方,失去了控制。

如果这是一个弹出窗口阻止程序问题,我希望收到一些通知,指出弹出窗口被阻止,window.open 应该只返回 null 并继续引发第二个警报。

有什么想法吗?我是在滥用事件处理程序还是 window.open 方法?

【问题讨论】:

  • 在 Firefox 上,在 Ubuntu 上,我都会看到两个弹出窗口。尝试将 Google 窗口移开。
  • 是的,我不明白为什么这不起作用。显然事件处理程序是好的(否则你不会得到第一个警报),window.open 几乎不能被打破......奇怪!您是否在控制台中收到任何错误消息?
  • 在我的机器上,控制台上什么也没有,只有第一个警报,没有弹出窗口。我刚刚尝试在一个新的 Firefox 配置文件中运行它并且它工作正常,所以这似乎是由于我安装了一些扩展或奇怪的配置。
  • 我在 Mac FF20 上遇到过类似的问题,window.open 之后的任何内容都没有执行

标签: javascript firefox dom popup dom-events


【解决方案1】:

禁用所有 Firefox 扩展后,上面的代码按预期工作。这个问题可能是我自己的机器和配置所特有的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2015-03-28
    • 1970-01-01
    • 2015-09-24
    • 2012-07-06
    • 2011-05-17
    相关资源
    最近更新 更多