我正在尝试在我正在打开的子窗口加载并准备好其文档时收到通知。这似乎不起作用:
win = window.open(href, 'test', 'width=300, height=400');
win.focus();
$(win.document).ready(function() {
// Ok, the function will reach here but if I try to manipulate the
// DOM it doesn't work unless I use breakpoints
$(this).contents().find("...").doStuff(); // nothing happens
});
我该怎么做?
答案 0 :(得分:10)
$(win.document).ready(function() {
$(win.document).contents().find("...").doStuff();
});
This question讨论了一些非常相似的内容。重复?
答案 1 :(得分:6)
我遇到了类似的问题,对我而言,窗口上的.load事件确实有效,而.ready则没有。所以你可以试试:
win = window.open(href, 'test', 'width=300, height=400');
$(win).load(function() {
$(this).contents().find("...").doStuff();
});
答案 2 :(得分:1)
在网站上的脚本中使用window.opener
,您正在加载并执行第一页中全局(!)中定义的函数。
主页:
<html>
<head>
<script type="text/javascript">
window.notify = function () {
alert('runned from opened window');
};
window.onload = function() {
document.getElementById('button').addEventListener('click', function() {
window.open('test.html');
}, false);
};
</script>
</head>
<body>
<button id="button">Open window</button>
</body>
已打开的页面:
<html>
<head>
<script type="text/javascript">
window.onload = function() {
window.opener.notify()
};
</script>
</head>
<body>
Popup site
</body>
</html>
答案 3 :(得分:0)
只需在iframe中添加此代码,
即可$(document,parent.document).ready(function(){
alert('Done');
});