gpt4 book ai didi

javascript - 如何在打开的子窗口中调用 javascript 函数

转载 作者:行者123 更新时间:2023-12-02 17:03:11 24 4
gpt4 key购买 nike

我有一个父级 html 文件,希望用户单击某个内容,然后打开一个新窗口(或选项卡),其中包含父级中 div 的(动态生成的)内容(隐藏在父级中)。

根据我在这里和其他地方的阅读,类似的内容应该有效:

父级.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Parent</title>
<script src="/js/jquery-1.11.0.min.js"></script>
</head>
<body>
<div id="from">
html from parent
</div>

<div id="launcher">
launch child
</div>

<script type="text/javascript">
$("#launcher").click(function() {
var child = window.open('child.html', '_blank', '', false);
if (child) {
var html = $("#from").html();
//window.setTimeout(child.addHTML(html), 5000);
child.addHTML(html);
}
else {
alert('Please allow popups for this site');
}
});
</script>
</body>
</html>

child.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Child</title>
<script src="/js/jquery-1.11.0.min.js"></script>
</head>
<body>
<div id="to"></div>

<script type="text/javascript">
function addHTML(html) {
$('#to').html(html);
}
</script>
</body>
</html>

但是,无论使用注释掉的 setTimeout (如果在调用子函数之前子函数尚未加载),我都会立即收到此错误(在 Safari 中,在 Chrome 中类似):

'undefined' in not a function (evaluating 'child.addHTML(html)')

我做错了什么?有更好的方法来实现我的目标吗?

最佳答案

window.setTimeout 的第一个参数应该是要执行的函数。

试试这个:

        if (child) {
var html = $("#from").html();
window.setTimeout(function(){child.addHTML(html);}, 5000);
}

我建立了一个小例子:: http://jsfiddle.net/rt19hv7v/

关于javascript - 如何在打开的子窗口中调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25506647/

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