gpt4 book ai didi

javascript - 获取用于 jQuery 操作的弹出窗口的 DOM 元素

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:36:53 28 4
gpt4 key购买 nike

我正在创建一个弹出窗口,如下所示:

   var comet = {

popup: null,

newPopup: function(windowsname, w, h){
this.popup = window.open(windowsname, windowsname, 'width=' + w + ',height=' + h);
var self = comet;
var logOut= null;
$(this.popup.document).ready(function(){
logOut = self.popup.document.getElementById('logout');
console.log(logOut);
$(logOut).live('click', function(){
alert('HELLO');
return false;
})
})
},

some_function: function(){
//calling it here:
this.newPopup('index.php',1120,550);
}
}

logOut 有时(通常在第一个窗口打开时)返回 null。此外,点击处理程序永远不会通过,原始点击处理程序会运行。

如何覆盖弹出窗口的真实点击处理程序?
这两个页面都在我的网站上,因此应该没有跨站点问题..

这是一个 fiddle ,显示了我正在尝试做的一些事情:http://jsfiddle.net/maniator/K2B3q/

最佳答案

在 Firefox 4 和 Chrome 11 中测试并工作。Check it out.

$(function()
{
var comet =
{
popup: null,
newPopup: function(url, w, h)
{
this.popup = window.open(url, url, 'width=' + w + ',height=' + h);
var self = this;

this.popup.onload = function ()
{
var doc = this.document,
script = doc.createElement('script');
script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js';
script.onload = function ()
{
function setup()
{
$('#logout').click(function () { alert('It worked!'); });
}

script = doc.createElement('script');
script.textContent = "(" + setup.toString() + ")();";
doc.body.appendChild(script);
};

doc.head.appendChild(script);
};
},

foo: function()
{
this.newPopup('http://jsbin.com/amuza3/2', 600, 400);
}
};

$('#clickme').click(function ()
{
comet.foo();
});
});

关于javascript - 获取用于 jQuery 操作的弹出窗口的 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5984463/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com