• 締切済み

javascriptでのエラーについて

Windows7+IE8にて以下の処理を行いたいのですが、 ================================================== (1) 親ウィンドウ(oya_window.html)から、【window.open】にて   子ウィンドウ(ko_window.html)を開く (2) 子ウィンドウ(ko_window.html)の【window.opener】にて   親ウィンドウ(oya_window.html)に定義されている   【window.open】を実行する関数[openWindow]を呼び出し、   Yahooページを開く ================================================== (2)の部分で以下のエラーとなり、Yahooページを開く事ができません。 --------------------------------------------------------- このWebページのエラーにより、正しく機能しない場合があります。 --------------------------------------------------------- タグが無効です。 oya_window.html   ライン:10 コード:0      文字:5 --------------------------------------------------------- 同マシン(Windows7)のfirefoxでは問題なく処理が行えるため、IEの 何らかの設定に起因していると思うのですが、IEの何の設定に起因して いるのかわからず、困っています。 何か情報をお持ちの方いらっしゃいましたら、よろしくお願いします。 【その他情報】 ○IEをアドオンなしで起動しても同エラーが発生することから、IEの  アドオンによる影響ではないと思われます。 ○以下の処理は問題なく実行できます。  ▼パターンA  ==================================================  (1) 親ウィンドウ(oya_window2.html)から、【window.open】にて    子ウィンドウ(ko_window2.html)を開く  (2) 子ウィンドウ(ko_window2.html)にて(元々親ウィンドウ    (oya_window.html)に定義していた)【window.open】を実行する    関数[openWindow]を呼び出し、Yahooページを開く  ==================================================  ▼パターンB  ==================================================  (1) 親ウィンドウ(oya_window3.html)から、【window.open】にて    子ウィンドウ(ko_window3.html)を開く  (2) 子ウィンドウ(ko_window3.html)の【window.opener】にて    親ウィンドウ(oya_window.html)に定義されている    【document.bgColor】を実行する関数[changeColor]を呼び出し    親ウィンドウの背景色を灰色に変更する  ================================================== 【ソース】 ▼本来のパターン ==親ウィンドウ(oya_window.html)=================== <HTML> <HEAD> <TITLE>親ウィンドウ </TITLE> <script language="Javascript"> function koopen(){ window.open("ko_window.html","ko_window","status=yes,width=800,height=100"); } function openWindow(){ window.open("http://yahoo.co.jp","",""); } </script> </HEAD> <BODY> <a href="JavaScript:koopen();">子ウインドウを開く</a> </BODY> </HTML> ================================================== ==子ウィンドウ(ko_window.html)=================== <HTML> <HEAD> <TITLE>子ウィンドウ </TITLE> <script language="Javascript"> function helpop(){ window.opener.openWindow(); } </script> </HEAD> <BODY> <a href = "JavaScript:helpop();">Yahooページを開く</a> </BODY> </HTML> ================================================== ▼パターンA ==親ウィンドウ(oya_window2.html)=================== <HTML> <HEAD> <TITLE>親ウィンドウ </TITLE> <script language="Javascript"> function koopen(){ window.open("ko_window2.html","ko_window","status=yes,width=800,height=100"); } </script> </HEAD> <BODY> <a href="JavaScript:koopen();">子ウインドウを開く</a> </BODY> </HTML> ================================================== ==子ウィンドウ(ko_window2.html)=================== <HTML> <HEAD> <TITLE>子ウィンドウ </TITLE> <script language="Javascript"> function helpop(){ window.opener.window.open("http://yahoo.co.jp","",""); } </script> </HEAD> <BODY> <a href = "JavaScript:helpop();">Yahooページを開く</a> </BODY> </HTML> ================================================== ▼パターンB ==親ウィンドウ(oya_window3.html)=================== <HTML> <HEAD> <TITLE>親ウィンドウ </TITLE> <script language="Javascript"> function koopen(){ window.open("ko_window3.html","ko_window","status=yes,width=800,height=100"); } function changeColor(){ document.bgColor="CCCCCC"; } </script> </HEAD> <BODY> <a href="JavaScript:koopen();">子ウインドウを開く</a> </BODY> </HTML> ================================================== ==子ウィンドウ(ko_window3.html)=================== <HTML> <HEAD> <TITLE>子ウィンドウ </TITLE> <script language="Javascript"> function helpop(){ window.opener.changeColor(); } </script> </HEAD> <BODY> <a href = "JavaScript:helpop();">親ウィンドウの色を変える</a> </BODY> </HTML> ==================================================

noname#218142
noname#218142

みんなの回答

  • oogai
  • ベストアンサー率0% (0/0)
回答No.3

すでに解決済みかもしれませんが・・・・・・。 可能であればOfficeをアンインストール、IEをアンインストール、IEを再インストールしてみてください。 OfficeのハンドラがIEと当たっているため、誤動作するそうです。 そうでなければ、Administrator権限でコマンドプロンプトを起動し cd c:\Windows\system32 regsvr32 -u docobj.dll cd C:\Program Files\Internet Explorer regsvr32 ieproxy.dll と入力してみてください。

参考URL:
http://goo.gl/QzwWNV
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.2

opener じゃなく、名前が有るwindowだから そういう方向で取り出す形にするっていうのはどう?(そもそもIEでopenerでobjectが返ってきてるのかっていう疑問が…) IEの挙動として「開いたwindowからごにょごにょ」を「無効化」しているだけかもしれないし。window.open系は偽装だのなんだのであれこれと仕様が変わったりレンダリングエンジンごとに挙動が違ったりってしてるから・・・IEならセキュリティレベルで変化するかも?

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

line10 の window.open() だけど、引数が "" なら省略したらどうなるかな? (丁寧に常に3つ指定するんじゃなく)

noname#218142
質問者

お礼

>SAYKAさん ありがとうございます。 line10 の window.open() の引数については、""を省略しても変化ないんです。。 子ウィンドウから、【window.opener】で親ウィンドウ側に定義されている【windows.open】を実行する関数(openWindow)を実行する際にエラーになるようなのですが。。。 IEのなんの設定が起因して、なぜ「タグが無効です」となるのか全く検討もつかず困ってます(・_・;)

関連するQ&A

  • Javascript:同じスクリプトを使い、URL変更のみしたいのですが。。。

    子ウィンドウから親ウィンドウのURLを変更するJavascriptを作成しました。 子ウィンドウのHTMLソースは下記の通りです。 「function ctrlWin()」を同じように「function ctrlWin2()」「function ctrlWin3()」・・・と、書き続けるのはあまり効率的でないと思うので、URLだけ指定するような方法を教えてください。 環境はIE6.0以上です。 ---------------------------------------- <html> <head> <title></title> <script Language="JavaScript"><!-- function ctrlWin() { window.opener.location.href = "http://www.yahoo.co.jp/",target="_main"; } function ctrlWin2() { window.opener.location.href = "http://www.google.co.jp/",target="_main"; } // --> </script> </head> <body> <a href="javaScript:ctrlWin()">(Yahoo!)</a><br> <a href="javaScript:ctrlWin2()">(Google!)</a> </body> </html>

  • 親、子、孫のウインドウを同時に表示するのは?

    親と子のウンドウを同時に開くのは 親のファイルに以下のように書けば <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!--// function openWindow() { window.open("","windowname"); } //--> </SCRIPT> </HEAD> <BODY> <A HREF="ko.html" onClick=openWindow() TARGET="windowname">子ウインドウ</A> </BODY> 出来るんですが、子のファイルに同じように書くと 子のウインドウが孫に変わってしまいます。 親、子、孫を同時に表示するのには、どうすればよいか、よろしくお願いします。

  • JScript server2008 window.openについて

    JScript に関するバグ情報等が有れば教えて下さい。 具体的には Windows Web Server 2008 R1 + IE8 の環境にて window.open 操作をした場合にターゲット指定をうまく認識しない模様です。 フレーム内親ウィンドウから子ウィンドウ(別ウィンドウ)を開き、開いた子ウィンドウから親ウィンドウを操作したいのですが、新規のウィンドウを開いてしまいます。 XP + IE8、Vista + IE8では問題が発生しません。 以下に簡単なソースを記載します。 --- index.htm --- <HTML> <HEAD> <TITLE>フレーム</TITLE> </HEAD> <FRAMESET rows="50%,*" border="3" > <FRAME name="up" src="./parent.htm" frameborder="1"> <FRAME name="down" src="" frameborder="1"> </FRAMESET> </HTML> --- 親ウィンドウparent.htm --- <HTML> <HEAD> <TITLE>親ウィンドウ</TITLE> <script language="javascript"> <!-- function child_window(){ window.open("./child.htm" , "child"); } //--> </script> </HEAD> <BODY> 親ウィンドウ<BR> <input type="button" value="open" onclick="child_window();"> </BODY> </HTML> --- 子ウィンドウchild.htm --- <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>子ウィンドウ</TITLE> <script language="javascript"> <!-- function parent_window(){ window.open("./parent.htm" , "up"); } //--> </script> </HEAD> <BODY> 子供だよ<BR> <input type="button" value="parent_open1" onclick="parent_window();"> </BODY> </HTML>

  • いくつものJavaScriptは使えませんか?

    ひとつのHTMLにいくつかのJavaScriptを入れています。ひとつは</HEAD>のまえに外部ファイルを呼び出す形で <SCRIPT LANGUAGE="javascript"src="script/css.js"> </SCRIPT></HEAD> このような形。 そのほか<BODY>~</BODY>の間に<SCRIPT LANGUAGE="JavaScript">~</SCRIPT>という形で、日付表示とお気に入り登録を入れています。 この二つと外部ファイルの呼び出しは作動するのですが、なぜかリンクをクリックして出させる小窓はぜんぜん表示されません(下記内容です) <script> //Popup Window Script //By JavaScript Kit (http://javascriptkit.com) //JavaScript tutorials and over 400+ free scripts function openpopup(){ var popurl="thankyou.htm" winpops=window.open(popurl,"","width=450,height=450,toolbar,") } </script> <a href="javascript:openpopup()">Click here to open window</a> この内容だけで、HTMLに貼り付けると うまくいのですが・・・・・(^^;

  • 親タブから子タブ開いて親タブへ戻す。

    以前、ここで質問をしたものです。 まだ、解決していません。 window.opener.focusが利かないと質問したものです。 親タブ(ウインドウ)から子タブ(ウインドウ)をひらいて そのリンク先を親タブ(ウインドウ)で制御しようとしています。 自分でいろいろやりましたが、現在chromeのみで動いています。 Firefox、IEでは動いていません。 他に良い方法はないでしょうか? 現在のコードです。 親<index.html> <html> <head> <title>TOPページ</title> <script type="text/javascript"> <!-- var win; // サブウィンドウを開く処理 function disp(url){ win = window.open(url, "oya"); } // --> </script> </head> <body> <p><a href="example_sub8.html" target="_blank" onClick="disp('example_sub8.html')">testサブウィンドウを開く</a></p> </body> </html> 子ウインドウ<example_sub8.html> <html> <head> <title>testサブウインドウ</title> <script type="text/javascript"> <!-- // リンクの処理開始 function disp(url){ if(!window.opener || window.opener.closed){ // メインウィンドウの存在をチェック window.alert('メインウィンドウがありません'); // 存在しない場合は警告ダイアログを表示 } else{ window.blur(); window.opener.focus(); window.open(url,"oya"); //window.opener.location.href = url; // 存在する場合はページを切りかえる } } // リンクの処理終了 // --> </script> </head> <body> <ul> <li><a href="#" onClick="disp('index.html'); return false;">トップページ</a></li> <li><a href="#" onClick="disp('index2.html'); return false;">test2ページ</a></li> </ul> </body> </html>

  • JavaScriptの表示についておねがいします。

    JavaScriptで、以下のスプリクトのページを表示する部分を10秒ごとにしたいのですがどなたか教えて頂けないでしょうか?出来れば、追記して回答お願いします。 <html> <body> </scr ipt> </head> <body onLoad="openWindow1()"> <a href="javascript:openWindow1();">web表示</a> <SCRIPT language="JavaScript"> <!-- // サブウィンドウの表示方法を指定する function openWindow1() { window.open("http://yahoo.co.jp/","1"); window.open("http://www.google.co.jp/","2"); window.open("http://ja.wikipedia.org/wiki/メインページ","3"); } //--> </SCRIPT> </body> </html>

  • JavaScriptについてご教授願います。

    お世話になります。 JavaScriptについてご教授願います。 main.html ----------------------------------------------------------- <HTML> <HEAD> </head> <body> <INPUT TYPE=BUTTON value="閉じる" onClick="CloseWin()"> </body> </html> ----------------------------------------------------------- kozin.html ----------------------------------------------------------- <HTML> <HEAD> <script language="JavaScript"> function CloseWin(){ window.close(); } </script> </head> <body> 個人情報 </body> </html> ----------------------------------------------------------- 実現したいことはmain.htmlのボタンを押下することによって kozin.htmlの画面を閉じるということです。 お手数をお掛け致しますがどうぞよろしくお願いいたします。

  • 子ウィンドウの情報を取得したい

    window.openを複数行い、各ウィンドウの情報を取得したいのですが 配列変数などで管理せずwindowなどで取得は可能でしょうか? 試しに作成したソースです --ココカラ(oya.html)-- <html> <head> <script type="text/javascript"> <!-- //この方法で取得ができるが var koList = new Array(); function openKoA(){ kowin = window.open("ko.html", "kowin" + koList.length); koList.push(kowin); } function koListA(){ for(i in koList){alert(koList[i].document.getElementById("t1").value);} } // 配列で管理せずにwindow等にある情報で取得したい function openKoB(){ window.open("ko.html"); } function koListB(){ alert("子供リストなど"); //window.childNodes とか } --> </script> </head> <body> <input type="button" value="openKoA" onclick="openKoA()"> <input type="button" value="koListA" onclick="koListA()"> <br> <input type="button" value="openKoB" onclick="openKoB()"> <input type="button" value="koListB" onclick="koListB()"> </body> </html> --ココマデ(oya.html)-- --ココカラ(ko.html)-- <html> <body> <input type="text" id="t1" value="aa"> </body> </html> --ココマデ(ko.html)-- 以上、よろしくお願いします。

  • ページのエラー

    始めまして 任意大きさのウインドウをたち上げる際 (ブラウザ上で) どうしても、「表示されました。」の横に ビックリマーク「!」が出て 暫くすると、ページエラーと表されます。 任意のウインドウは正常に表示されます。 色々と調べましたが、どうも私のスキルでは 限界です。 <HEAD> <SCRIPT LANGUAGE="JavaScript"> function openWindow1() { window.open("***.htm","window1","WIDTH=300,HEIGHT=310"); } function openWindow2() { window.open("***.htm","window2","WIDTH=300,HEIGHT=310"); } function openWindow3() { window.open("***.htm","window3","WIDTH=300,HEIGHT=310; } </SCRIPT> <HEAD> ・・・・・・・・・・・・・ </BODY> <A HREF="javascript: openWindow1()"><IMG src="con_syousai.gif" width="65" height="20"></A></TD> </BODY> 今の所、一つしかリンクしていません。 いずれ、9個を同じような形で アイコンから、したいと思ってます HPビルダーのソースから記入したのですが 何処が可笑しいのでしょう? また、他の方法(タグ)はあるのでしょうか? どうか、お知恵を下さい 宜しくお願いします。

  • VBAでIEの操作→サブウインドウを操作するには

    以下の「oya.html」「ko.html」があります。 それを、VBAで「oya.html」を開き、「子ウインドウを開く」リンクをクリックさせて、開いた「ko.html」の「子ウィンドウを閉じる」リンクをクリックさせたいのだがどうすればよろしいでしょうか? ---------VBA ↓--------------------------------------------- Private Sub CommandButton1_Click() Dim objIE As Object 'Object型 'IEのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "file:///C:/oya.html"'「oya.html」を開く '----表示待ち↓-------- Do While objIE.Busy  DoEvents Loop Do While objIE.document.ReadyState <> "complete" DoEvents Loop '----表示待ち↑---------- For Each linkitem In objIE.document.all.tags("A") 'Aタグ If linkitem.innerText = "子ウインドウを開く" Then linkitem.Click End If Next '----表示待ち↓-------- Do While objIE.Busy DoEvents Loop Do While objIE.document.ReadyState <> "complete" DoEvents Loop '----表示待ち↑----------   For Each linkitem In objIE.document.all.tags("A") 'Aタグ If linkitem.innerText = "子ウィンドウを閉じる" Then linkitem.Click End If Next End Sub ---------------↑------------------------------------------- --------oya.html ↓----------------------------------------- <html> <head><script> function showModal(){ var value = showModalDialog('ko.html'); } </script></head> <TITLE>親ウィンドウ</TITLE> <body> <a href="javascript://" onclick="showModal()">子ウインドウを開く</a><br> </body> </html> -----------------↑----------------------------------------- --------ko.html ↓-------------------------------------------- <html> <TITLE>子ウィンドウ</TITLE> <body> <a href="#" onClick="window.close(); return false;">子ウィンドウを閉じる</a><br> </body> </html> ------------------↑-----------------------------------------

専門家に質問してみよう