0

我的javascript代码是这样的:

function openWindows() {

    if(A is true) {
      window.open(URL_A);
    }

    if(B is true) {
      window.open(URL_B);
    }

    and so on...

}

当我的函数被调用时,所有条件都为真,随机没有。的窗户打开。有时,它们都打开,但它是随机发生的。可能是什么问题?我是否丢失了父窗口引用?为什么这是随机发生的?

4

2 回答 2

2

对我来说很好。

您确定您的弹出窗口阻止程序没有阻止它们吗?许多浏览器不允许您在没有点击事件的情况下触发新窗口,否则浏览器会停止它们。此外,浏览器通常允许每个点击事件打开一个窗口。

if(true) {
    window.open('http://www.google.com');
}

if(true) {
      window.open('http://www.google.com');
}

if(true) {
    window.open('http://www.google.com');
}

if(true) {
      window.open('http://www.google.com');
}
​

http://jsfiddle.net/2LJtv/(警告要准备好4个窗口打开)

于 2012-06-26T19:29:48.467 回答
2

is true并且and so on...不是合法的 JavaScript 代码。


当我的函数被调用时,所有条件都为真,随机没有。的窗户打开。有时,它们都打开,但它是随机发生的。可能是什么问题?

无法回答没有更多信息。

我是否丢失了父窗口引用?为什么这是随机发生的?

无法回答没有更多信息。


您的问题很有趣,但伪代码应该可以工作,只要以下评估为有效值:

  • A is true
  • B is true

以下是包含有效值的有效变量:

  • URL_A
  • URL_B
于 2012-06-26T19:35:47.463 回答