2009-06-23 24 views
8

JavaScriptで別のページを開くHTMLページがあります。ユーザーが他のページのボタンをクリックすると、JQueryを介して開始ページのDIVにメッセージを投稿します。私はそれに私の指を置くことはできませんが、私はこれを動作させるように見えることはできません。ここに私のオープナーのページです。JQuery - オープナーウィンドウに書き込む

<html> 
    <head> 
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script> 
    </head> 

    <body> 
    <input type="button" onclick="window.open('dialog.html', '_blank', 'height=200, width=300');" value="launch!" /> 
    <div id="testDiv"></div> 
    </body> 
</html> 

ユーザーが「起動!ボタンを押すと、ダイアログが表示されます。ダイアログのコードは次のようになります。

<html> 
    <head> 
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script> 
    </head> 

    <body> 
    <input type="button" onclick="updateOpener()" value="Update Opener" /> 
    <script type="text/javascript"> 
     function updateOpener() 
     { 
     var testDiv = window.opener.jQuery("#testDiv"); 
     if (testDiv != null) { 
     alert("here"); 
     testDiv.html("Updated!"); 
     } 
     } 
    </script> 
    </body> 
</html> 

驚いたことに、警告ボックスが表示されます。しかし、私は私の最初のページでDIVのHTMLを更新するように見えることはできません。誰もこれを行う方法を知っていますか?

+0

上記のコードは私のために働きます。 –

+0

彼は彼の編集でそれを修正しました。 – montrealist

答えて

5

あなたは "confirmDiv"を参照しています。そのDIVはどこですか?

+3

これはOPの問題でした。彼はこの答えの後に彼のコードを修正した。 – Sev

0

うーん、それは、Firefox 3.0.11、IE8とChrome 2で私の作品...(Ieはdialog.htmlボタンが言ってオープナーページにHTMLを更新 '更新!'。)

0

奇妙なことにあなたの例はChrome、IE 8、FireFoxでうまく動作します。他の詳細はありますか?

2

親ページ(開幕者)が別のドメインに存在する場合は、これを実行できません。それ以外の場合、コードは完全に機能します。

また、jQuery関数がnullを返すことはないので、あなたの!= nullチェックはおそらくあなたが思っていることをしていません。要素の存在を確認する場合は、この方法で行う必要があります。

var el = $("#myElementId"); 
if(el.length == 0) 
    alert('Not found!');