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 イベントは、その windowにロードされた関数のみをトリガーするため、実際にはそれを行うことはできません。ただし、開いている新しいウィンドウのコンテンツを制御できる場合 (つまり、独自のコンテンツを表示するウィンドウを開く場合)、そのウィンドウで開くページに onload ハンドラーを配置できます。呼び出された関数は、'window.opener' を介してオープナー ウィンドウと対話できます。たとえば、'1.html' と '2.html' という 2 つのファイルがある場合は、

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>

上の例では、最初のウィンドウでリンクをクリックすると、2 番目のウィンドウが (おそらくブラウザの新しいタブで) 開き、開いた直後に最初のウィンドウ (つまり、最初のウィンドウ) にアラートが表示されます。タブ)

PS
ああ、そしてRoryが彼の答えで指摘したように、ファイルは絶対に同じドメインにある必要があります

于 2013-01-26T13:16:38.553 に答える