1

我的代码是,

<html>
    <head>
       <title>onclick test</title>
       <script type="text/javascript">
           var googleWindow = window.open('http://www.google.com');
           window.onload = change;
           function change(){
            alert('Hello');
           }
        </script>
</html>

上面的代码工作正常。它在窗口加载时调用 change 函数。我正在尝试将 onload 事件添加到 googleWindow 但它不起作用。

<html>
    <head>
       <title>onclick test</title>
       <script type="text/javascript">
           var googleWindow = window.open('http://www.google.com');
           googleWindow.onload = change;
           function change(){
            alert("Hello');
           }
        </script>
</html>

如何将事件添加到 googleWindow?

谢谢,

4

2 回答 2

8

您不能将事件添加到另一个域中的窗口。

于 2013-01-26T12:51:35.947 回答
1

onload 事件仅触发在该窗口中加载的函数,因此您不能真正做到这一点。但是,如果您可以控制正在打开的新窗口的内容(即,如果您要打开一个显示您自己的某些内容的窗口),那么您可以在该窗口中打开的页面中放置一个 onload 处理程序,并且然后被调用的函数可以通过“window.opener”与开启器窗口交互,例如,如果你有两个文件“1.html”和“2.html”,那么你可以拥有:

1.html

<a href="#" onClick="window.open('2.html')">Open '2.html'</a>

2.html

<head><script>
window.opener.alert("this alert is displayed by the '1.html' window");
</script></head>

在上面,单击第一个窗口中的链接后,第二个窗口将打开(可能在浏览器的新选项卡中),打开后您将立即看到第一个窗口中显示的警报(即第一个标签)

PS
哦,正如罗里在他的回答中指出的那样,您绝对必须将文件放在同一个域中

于 2013-01-26T13:16:38.553 回答