• 締切済み

IE7でのwindow.close後のwindow.openについて

javascriptで、ボタンクリックでウィンドウを開くときに、同じ名前のウィンドウが既に開いていたら一回閉じで、開き直すというロジックを書いてます。 これはIE6では正常に動いているのですが、IE7になると、ウィンドウが閉じたまま、開き直さないで何も表示されなくなってしまいます。たまに開くときもあるのですが。 ボタンクリック後のコードを載せます。 ちゃんと開く方法はないでしょうか? function openwindow(){ var newWindow = window.open("test.html", "test"); if(newWindow.name == "test") { newWindow.close(); } oneScdWindow=window.open("test.html", "test"); }

みんなの回答

  • Dumper
  • ベストアンサー率28% (24/84)
回答No.1

私の方では問題の現象は出ませんが、この関数は ウィンドウがあってもなくても 一度開いて閉じてまた開いて という動作してますね。 そのせいでしょうかね? 新しくoneScdWindowを作ったりnameを参照する事が 書いてるスクリプト上必要ですか? <script type="text/javascript"> var newWindow; function openwindow() { if( newWindow && !newWindow.closed ){ newWindow.close() } newWindow = window.open("test.html", "test"); } </script>

HAWAI777
質問者

補足

そうなんです。 一度開きたいのです。 なぜかというと、その子ウィンドウでは、parent.opener を使っているからです。 子ウィンドウをそのままにして親ウィンドウを一度閉じてしまうと、 その子ウィンドウは親がわからなくなってしまうので、 一度開くようにしたのわけです。

関連するQ&A

  • FireFoxでJavascript「window.close()」が効きません。

    別ウィンドウを開いて「閉じる」ボタンをクリックするとウィドウを閉じる、というレイアウトを作成しているのですが、 <A HREF="javascript:window.close()">ウインドウを閉じる</A> では、firefoxでは動作しません。 情報を探してみて、以下のようなソースが有効なようなのですが、 <head>の中に以下を記述。 <script type="text/javascript" language="JavaScript"> <!-- function close_win(){ var nvua = navigator.userAgent; if(nvua.indexOf('MSIE') >= 0){ if(nvua.indexOf('MSIE 5.0') == -1) { top.opener = ''; } } else if(nvua.indexOf('Gecko') >= 0){ top.name = 'CLOSE_WINDOW'; wid = window.open('','CLOSE_WINDOW'); } top.close(); } --> </script> で、閉じるボタンを置きたい場所に <A HREF="javascript:close_win()">ウインドウを閉じる</A> が、ローカルで見ている範囲ですが、動作しません。 ページ内リンクみたいにページトップに戻るだけ。。。 ちなみにIEとネスケでは正常に動作しました。 どなたかお分かりになる方、ご教授願えませんか? 宜しくお願いします。

  • window.openしたウィンドウのwindow.onblurについて

    window.openしたウィンドウのonloadに  window.onblur = function() { window.close(); } を設定しているのですがFirefox3.6、Opera10.51ではウィンドウからフォーカスが外れたらウィンドウが閉じるのですが(期待している動き通り)、 IE6のみwindow.openしたウィンドウをクリックしたと同時にウィンドウが閉じてしまいます。 どうすればIEでもFirefox,Operaと同じ動きをさせることが出来ますでしょうか・・・

  • window openについて

    こんにちは、例えば以下のようなスクリプトがあったとします。 <html> <form name = serchform> <input type=text name=id><br> <input type=submit value=ID検索 onclick="openwin()"> <a href="javascript:open(1);"><Img Src="1.bmp"></a><br> <a href="javascript:open(2);"><Img Src="2.bmp"></a><br> <script type="text/javascript"><!-- function openwin() { a = document.serchform.id.value; url = "http://10.8.2.166/test/syuhou_kensaku.php?id="+a; mywin = window.open(url,"","width=1120,height=500"); } function open(select) { if(aa == 1){ alert("Test") url2="http://10.8.2.166/test/kensaku.php?msg="+Testです; mywin2 = window.open(url2,"",""); } } //--></script> このソースを実行すると、ID検索ボタンをクリックしても何も反応せず 1.bmpをクリックすると、Testとメッセージが表示され、画面左下に 警告マークが表示され、何も反応しません。 しかし、function open(select)を削除し、ID検索ボタンをクリック すると命令した処理を実行してくれます。 function openwin()を削除したらその逆も起きるのかと考えやって みたのですが、これについては上記と同じエラーでした。 なぜこのようになるのか原因が分かりません。 どなたかご存知の方がいらっしゃいましたら、アドバイスよろしく お願い致します。

  • Fire FoxでWindow Closeを有効にする

    Fire FoxでJavaScript Close Windowが効かない・・・ ということで、以下ScriptをHead内に <script type="text/javascript"> function clsWin(){ window.opener = window; var win = window.open(location.href,"_self"); win.close(); } </script> を記入し、HTML内には <INPUT type="button" value="Close" onclick="close_win()"> と記入したのですが、 やはり反応がありません・・・。 どなたかご存知の方、教えてください!

  • Firefoxでwindow.close()が効きません

    Win、MacともIEでは問題ないのですが、Firefoxでwindow.close()が効きません。 Firefoxのバージョンは、Windows→1.0.7、Mac→1.5.0.1です。 ソースは以下のとおりです。 <form> <input type="button" name="Submit" value="ウィンドウを閉じる" onClick="javascript:window.close();"> </form> また、以下の方法も試してみたのですが動作しませんでした。 <SCRIPT language="JavaScript"> <!-- function CloseWin(){ window.close(); } // --> </SCRIPT> <FORM> <INPUT type="button" value="ウィンドウを閉じる" onClick="CloseWin()"> </FORM> aタグのターゲットブランクで別ウィンドウを開いた場合です。よろしくお願いいたします。

  • window.openで開いたページに書き込みたい

    <html> <script language="javascript"><!-- function startIE(jpURL) { var newWindow = window.open(jpURL, null, 'width=500,toolbar=yes,menubar=yes,scrollbars=yes'); newWindow.onload = function() { alert("ページが読み込まれました!");// ここに読み込みが完了したら実行したい処理を記述する var NAIYOU=document.getElementById('NAIYOU'); var Kakikomi=newWindow.document.getElementByName('p'); Kakikomi.innerHTML= NAIYOU.innerHTML; } } // --></script> <a href="javascript:startIE('https://www.yahoo.co.jp/')">IE起動</a> <div id="NAIYO">ああああああああああああああああああああああああ</div> </html> ------------------------------------- divの内容は自動で色々変更するようにしていますが 参考として上記のようにしました。 ボタンを押してブラウザを起動したら、Yahooを開き 「あああああああああああ」を検索ボックスに入れたいと思っています。 しかし、ロードが終わっていない状況だからから 書き込むことが出来ません。 OnLoadを組み込んでみましたが、以下のようなエラーが出ます。 Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame. Chromeの拡張機能にしたら出来るようになるのでしょうか? お手数をおかけしますが、回答よろしくお願いいたします。

  • window.open _self でとんでくれない

    初歩的な質問だと思うのですが。 《test1.htmlのソース》 <html> <head> <title>test1</title> </head> <SCRIPT language=JavaScript> <!-- function jump(){ xurl="test2.html"; window.open(xurl,"_self"); } --> </SCRIPT> <body> <form> <input type=submit value="OK" onclick="jump()"> </form> </body> </html> これで[OK]ボタンをクリックしてもtest2.htmlを表示してくれません。 _selfを付けなければ別ウィンドウで表示されるのですが、自身のウィンドウに表示させるにはどうしたらいいのでしょうか。 ブラウザはIE6です。 よろしくお願いいたします。

  • window.open でExcelファイルを開く

    window.openでブラウザからExcelファイルを開いています。 function test(){  window.open('test.xls',null); } IE6+XPですとExcelファイルのみが開いてくれるのですが、IE7.0+Vistaでは空のIEウィンドウも一緒に開いてしまいます。 window.openを使いつつ、空ウィンドウが開かないようにする良い方法は無いでしょうか。 IE6でもIE7でも同じようにExcelファイルが開けることが理想です。

  • onbeforeunload時のwindow.openが効かないのです

    onbeforeunload時のwindow.openが効かないのですが… ページ内に設置した「閉じる」ボタン、またはブラウザの「閉じる」を押したときに、 新規ウィンドウが立ち上がるようにしたいのです。 複数台でテストすると、半数が新規ウィンドウが立ち上がりません。 まずIEでunloadが効かない場合がある事から、 以下サイトよりonbeforeunloadのスクリプトを引っ張りました。 http://blog.moxiecode.com/2008/04/08/unload-event-never-fires-in-ie/ で、 <SCRIPT LANGUAGE="JavaScript"> ~上部省略~ function unload() { //alert('Unload event occured.'); window.open('test_b.php'); }; </script> <body onbeforeunload="unload()"> と記述したのですが、 前述で新規ウィンドウが立ち上がらなかった台が、 アラートだと出すのですが、window.openに反応しません。 何か解決方法はありますでしょうか。 javascriptに関して全くの初心者ですので、四苦八苦しながらテストしています。 もし解決方法をご存じの方はソース例を教えて頂くと大変助かります。 宜しくお願いします!

  • window.openについて

    お世話様です。 早速本題なんですが画像のサムネイルページがあります。 そのページからサムネイルをクリックすると新しいウィンドウを開き元画像を表示するのですが、すべてサイズが違うためヘッダに <script language="JavaScript" type="text/javascript"> <!-- function openwin(url, w, h) { window.open(url,"","width=" + w + ",height=" + h); } // --> </script> と書いて、リンク<a>に onclick="openwin(this.href, 800, 600); return false;" とリンク1つづつに数値(幅,高さ)を変えながら入れて、 サムネイルが指定したサイズで新規ウィンドウとして開くところまでは至りました。 ですが、これでは、サムネイルをクリックする度に新規ウィンドウが開いてしまいます。ウィンドウの名前を指定しようと思い、 ヘッダを function openwin(url, name, w, h) { window.open(url, name, "width=" + w + ",height=" + h); とかえ、リンクを onclick="openwin(this.href, new, 800, 600); return false;" と変えました。 これでいけるかと思ったのですが、サムネイルと同じウィンドウに開かれてしまいます。さて、、、自分の力量はこんな程度で、もうわかりません。 どうすれば、アタらしいウィンドウの名前を指定出来るのか、 初歩的なところかもしれませんがご教授よろしくお願い致します。