【问题标题】:Javascript appending onload to a popup windowJavascript将onload附加到弹出窗口
【发布时间】:2010-04-16 14:53:04
【问题描述】:

我正在尝试通过以下方式将 onload 事件附加到弹出窗口:

var explorerWindow = window.open(PARAMS...);
explorerWindow.onload = function() {window.opener.unlockObj(id);}

这个想法是使生成弹出窗口的按钮成为只读的,一旦弹出窗口加载了它的所有内容,它就可以再次使用。但是,该事件似乎根本没有触发。我什至将其更改为以下内容,但一无所获:

explorerWindow.onload = function() {alert("bloop");}

我的语法有什么严重错误还是我完全遗漏了其他东西?另外,如果那里有任何合适的宝石可以在这种情况下提供帮助,我正在使用 JQuery。我尝试了以下类似的结果,但我不确定我的通话是否正确:

$(explorerWindow).load(function() {alert("bloop");});

非常感谢任何帮助。

【问题讨论】:

    标签: javascript jquery popupwindow


    【解决方案1】:

    这不适用于所有浏览器。我建议将 onload 处理程序放在加载到新窗口中的文档中,并将该调用调用到原始页面:

    window.onload = function() {
        opener.doStuff();
    }
    

    【讨论】:

      【解决方案2】:

      我实际上设法让它在我必须支持的浏览器中工作:

      explorerWindow.onload = new function() { explorerWindow.opener.unlockObj(id); }
      

      感谢蒂姆的回复。

      【讨论】:

      • 真的吗?我建议你仔细测试一下。由于使用了new,它将立即调用unlockObj(id)(而不是等待新窗口首先加载)并且将一个对象而不是一个函数分配给explorerWindow.onload,这将什么都不做(至少,没什么用)。该行实际上相当于只调用unlockObj(id);
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多