-1

次のJavaScriptを含むJSPファイルがあります

<script type="text/javascript" language="javascript">
    window.opener.myfunction();
    window.close();
</script>

これは、Chrome、Firefox で動作するファイルです。また、VMWare 仮想マシンで実行される Internet Explorer 8 および 9 でも動作します。しかし、window.opener が機能せず、myfunction が呼び出されないというバグがユーザーから報告されています。ユーザーは IE9 も使用していますが、ネイティブの Windows マシンで実行しています。

私の質問は、なぜ私の IE9 では動作するのに、彼では動作しないのですか? IE の設定のいずれかが原因でしょうか?

どうもありがとう

4

2 に答える 2

0

については知りwindow.openerませんでした。オープナー コードを変更できる場合は必要ありません。機能を複製する次のコードを検討してください。

w2 = window.open(...);
w2.opener = window;

オープナーがあなたのものである場合は、開いているウィンドウにオープナーとして割り当てます。並行性が心配な場合は、オープナーがまだ設定されていない場合は、開いたウィンドウでスリープできます。

<script type="text/javascript" language="javascript">
    (function f(){
      if(window.opener){
        window.opener.myfunction();
        window.close();
      }else{
        setTimeout(f,1); //1ms should be enough. If not, wait again.
      }
    })()
</script>
于 2012-10-26T12:52:20.113 に答える
0

例を挙げます... http://jsfiddle.net/KjBj3/6/

明らかに、ポップアップページにはマークアップが含まれますが、ドリフトが発生します...

var win = window.open("", "win","width=200,height=100");
win.document.write('<a href="#" id="close" onclick="window.close();">This is myWindow!</a>');
win.focus();
win.opener.document.write('<p>This is the source window!</p>');
于 2012-10-26T12:37:34.290 に答える