gpt4 book ai didi

javascript - Jquery为子窗口中的元素绑定(bind)点击事件

转载 作者:行者123 更新时间:2023-11-30 21:20:07 26 4
gpt4 key购买 nike

我有将创建一个子窗口的代码,并且在该窗口内,我希望能够在用户单击其中一个已定义的 html 元素时触发警报。该代码将在主窗口上按我希望的方式运行,但是当我将它应用到子窗口时它不起作用。

当下面的方法运行时,它会向控制台窗口输出“Window loaded”,但它不会启动点击事件。

function OpenUrl()
{
var url = $("#urltoopen").val();
var childwindow = window.open(url, '', 'width=800, height=500');
childwindow.focus();
$(document, childwindow.document).ready(function(){
console.log("Window loaded");
$( "div, span, li, ul, ol, input, button", childwindow).click(function(e) {
console.log("Child click event");
e.preventDefault();
e.stopPropagation();
alert("element clicked");
});
});
}

最佳答案

使用jquery contents函数查找子窗口元素

这是一个工作示例,请在本地服务器上试用

ma​​in.html

   <html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>

<button onclick=OpenUrl()>OPEN</button>

<script>

function OpenUrl(){

var childwindow = window.open('test.html', '', 'width=800, height=500');
$(childwindow.document).ready(function(){

setTimeout(function(){

$(childwindow.document).contents().find( "button").click(function(e) {
console.log("Child click event");
});
},500);
});
}



</script>

test.html

<html>

<body>

<button>test</button>
</body>

</html>

关于javascript - Jquery为子窗口中的元素绑定(bind)点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45277629/

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