• ベストアンサー

既知?IE7でJavaScriptのwindow.openメソッドでエラー

Internet Exploer7にアップデートされた端末において、以下のソースを実行し、「リンク」をクリックした場合、JavaScriptエラーが発生します。 <SCRIPT LANGUAGE="JAVASCRIPT"> <!-- function OpenWin() { var win1=window.open("","コード"); win1.location.href="./test.html"; } //--> </SCRIPT> <A HREF="JavaScript:OpenWin()">リンク</A> 色々と試した結果、window.openメソッドの第2引数(上記では"コード"となっている箇所)において、長音(ー)や感嘆符(!)など、記号のような文字を使用した場合、JavaScriptエラーの「引数が無効です」というエラーが表示されます。半角でも同様で、アンダーバー(_)以外の記号文字は大概エラーとなります。第2引数を"コド"のように、記号文字が入らないように記述しなおすと、エラーが発生しません。 この現象はIE6では発生しませんでした。 質問したいのは、この現象は既知のエラーとして伝えられているのでしょうか?ウェブ上で様々な検索をしても同様の現象は報告されていないので、端末固有の現象なのでしょうか? 使用OS:Windows XP SP2 IEバージョン:7.0.5730.11 宜しくお願い致します。

  • gk731
  • お礼率40% (2/5)

質問者が選んだベストアンサー

  • ベストアンサー
  • ANASTASIAK
  • ベストアンサー率19% (658/3306)
回答No.2

検証してませんが、そのような属性(window名)にはSGMLやらで の決まりがあるんで、2バイトは避けたほうがいいです。 推測ですがMS側でそれに気づいて7で修正したのでは?

gk731
質問者

お礼

ご回答ありがとうございます。 2バイトでなくても、*や+などでも発生します。。 修正後は半角アルファベットにしようと思っていますが。 >推測ですがMS側でそれに気づいて7で修正したのでは? このような場合、リリースノートに起票されたりはしない のでしょうか?

その他の回答 (2)

回答No.3

>そのような属性(window名)にはSGMLやらで の決まりがあるんで、2バイトは避けたほうがいいです。 回答してから、それに気づいてHTML 4.01 Transitional DTDの記述を眺めてました

回答No.1

>この現象は既知のエラーとして伝えられているのでしょうか? これについてはわかりませんが、 >端末固有の現象なのでしょうか? (セーフモードではないですが)当方でも再現を確認しました。端末固有というわけでもないと思います 情報としてわかったことがあれば今後追記していきます 関係ないが、 http://blogs.technet.com/msrc/archive/2006/12/22/new-report-of-a-windows-vulnerability.aspx http://www.betanews.com/article/Windows_Bug_Via_Message_Boxes_Gives_Security_Team_Holiday_Headaches/1166816364 http://www.betanews.com/article/More_Mysteries_of_the_Win32_MessageBox_Bug_Revealed/1167768334 この辺の一連の記事を思い出してしまった

gk731
質問者

お礼

ご回答ありがとうございます。 端末固有ではないとのこと、情報ありがとうございます。 Javascriptの制御がIEのバージョンに左右されるというのは 初めて体験したのですが、このようなことが起こりえるんですね。

関連するQ&A

  • JavaScriptのwindow.openでリファラーが取得できない。

    <SCRIPT language="JavaScript"> <!-- function OpenWin(){ window.open("sample.cgi,"new","width=500,height=250"); } // --> <A href="#" onClick="OpenWin()">オープン</a> 上のようにsample.htmlのページ内にwindow.openのJavaScriptを書いています。 sample.cgi内に$ENV{'HTTP_REFERER'}を埋め込んでいるのですがリファラーが取得できません。 window.openの場合はリファラーは取得できないのでしょうか?

    • ベストアンサー
    • CGI
  • window.openがIEでエラーにされる

    こんにちは。 今作成中のサイトで、地図印刷用ページをポップアップ表示させるため、以下のようなコードをつくりました。 html側 <a href="javascript:printwindow('map_print.html');"> js側 function printwindow(url){ window.open(url,document.title,"width=640,height=850,left=0,top=0,scrollbars=1,resizable=1"); } しかし、これではFirefoxでは新ウィンドウがエラーなしで表示されたのですが、IEでは「ページでエラーが発生しました」と言われ、ウィンドウが開きません。エラー内容は以下の通りです。 ライン:4 文字:2 エラー:引数が無効です。 コード:0 url:(エラーを起こしたファイル) 色々と試したり、検索したりもしたのですが原因究明に至れないため質問いたします。window.openがIEではなにか問題がありそうな気配だけはわかった気がします(的外れなのかもしれませんが)。原因をお教えいただけますと大変助かります。よろしくお願い致します。

  • window.openについて。

    初歩的な質問で申し訳ありません。 ★<script> function openWin(filename){ newWin = window.open(winname + ".html", "", "width=300, height=200, location=no, menubar=no, toolbar=no,resizable=yes"); } </script> ★<a href="JavaScript:openWin('pr00001')">PR00001</a> ・・・という二つのパーツ(★)があるのですが ここで分からないことがあります。 『function openWin(filename)』の『filename』にpr00001というhtmlファイルを埋め込む・・というのは理解できるのですが最初のパーツにある『newWin = window.open(winname + ".html"・・・』の中の『winname + ".html"』とは何を指しているのでしょうか・・・・。 大変申し訳ありませんがご指導お願いいたします。

  • 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;" と変えました。 これでいけるかと思ったのですが、サムネイルと同じウィンドウに開かれてしまいます。さて、、、自分の力量はこんな程度で、もうわかりません。 どうすれば、アタらしいウィンドウの名前を指定出来るのか、 初歩的なところかもしれませんがご教授よろしくお願い致します。

  • 別window最大化javaがIE8だけエラー

    Javaがほぼ初心者なので、困っております。どなたか教えてください。 別windowを最大化で開くjavaとhtmlのソースが下記なのですが、FireFoxやCromeやIE10などは ちゃんと動作してくるのですが、IE8だけエラーが生じてしまいます。 エラーメッセージは「window.open("test.html","fullscreen=yes");」の引数が無効とのメッセージです。 IE8だと"fullscreen=yes"が使用できないのかなと思いましたが、どの引数を使用すればよいか不明です。IE8で動作するにはどうすればいいのでしょうか。 下記がJavaとhtmlのソースコードになります。 ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ <script language="JavaScript"> <!-- function test() { window.open("test.html","fullscreen=yes"); } // --> </script> <a href="javaScript:test()">test</a> ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ 「IE4以降のようですが現状なら特に問題なさそうです。」と 記載あるので以下方法も試してみましたがダメでした。 http://hitoxu.com/095 ちなみに、IE8だけに動作してくれるjavaでもかまいません。

  • 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()を削除したらその逆も起きるのかと考えやって みたのですが、これについては上記と同じエラーでした。 なぜこのようになるのか原因が分かりません。 どなたかご存知の方がいらっしゃいましたら、アドバイスよろしく お願い致します。

  • JavaScriptのWindow.openで!

    JavaScriptのWindow.openで! お世話になってます。 JavaScriptのWindow.openについてお聞きします。 現在JavaScriptで・・・ リンクボタン押下→ポップアップ画面表示→再度リンクボタン押下  →再度ポップアップ画面表示(ポップアップ開きなおし) ということをしたいです。 IE6,7,8で対応する必要があるのですが、IE8でうまくいきません(泣) IE8では、ポップアップ画面を別プロセスで開くみたいで、 ポップアップがどんどん増えていってしまいます。 開くポップアップは一つにしたいのですが、対策がわかりません。 何か方法はないでしょうか? どなたかご教授ください。

  • window.openについて

    window.openを使って新しいウインドウを開きたいと思い質問させていただきます。 現在、 ---------------------------------------------------------------- <script type="text/javascript"> <!-- function w_opn() { newWin = window.open("abc.html","","width=200,height=300"); win.moveTo(0,0); } // --> </script> そして、BODY内に <a href="javascript:w_opn()">開く</a> --------------------------------------------------------------- というふうに作成しています。 この方法だと、リンク元が複数ある場合、HEAD内のJavaScriptも複数記述しないといけないと思うのですが、これをひとつのJavaScriptで制御したいのです。 どなたかご教授願えませんか?参考になるサイトのURLでも構いません。

  • 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> ==================================================

  • Javascriptのエラー

    HPのurlが代入されているPerlの変数$urlをJavascriptに引数として渡し、HPを別ウインドウに表示したいのですが、 エラー ')'が抜けているとなりエラーになります <SCRIPT LANGUAGE="JavaScript"> <!-- function abc(def) { new1 = window.open("def", "", "width=400, height=310"); new1.moveTo(0,0); new1.document.close(); } //--> </SCRIPT> <A HREF=\"javascript:abc($url)\">別ウィンドウに表示</A> 何処が間違っているのですか。