1. ホーム
  2. javascript

[解決済み] ie8 var w= window.open() - "Message: 無効な引数です"

2022-09-18 16:54:10

質問

IE8限定の問題があるサイトがあります。

コードは

var w = window.open(urlstring, wname, wfeatures, 'false');

エラーは

メッセージです。無効な引数です。

行数: 419 文字数: 5

コード 0

URIです。 http://HOSTNAME/js_context.js

コードの行番号を確認しました("Line"と"URI"が正しい)が、IE8 の後のバージョンでは、これは正確だと思われるとのことです。

アラートをダンプすることによって、呼び出しのすべての着信パラメーターをチェックしましたが、それらはすべて有効なようです。

この問題は、FF (おそらく 3) では発生しません。

UPDATEしました。

問題は、"var w"を行う際にwindow.open()の結果を代入していることにあるようです。行を 2 つのステートメントに分割すると、IE8 で動作します。

UPDATE2です。

に基づいています。

http://javascript.crockford.com/code.html

<ブロッククオート

関数がすぐに呼び出される場合 すぐに呼び出される場合は、呼び出し式全体を を括弧でくくる必要があります。 で囲み、生成される値が の結果であって の結果であり、関数そのものではないことを明確にするためです。

これは正確には違うのですが、IE8の互換モードで、この原理を適用すると問題が解決することがわかりました。

var w = (window.open(urlstring, wname, wfeatures, false));

どのように解決するのですか?

これは古い投稿ですが、おそらくまだ誰かのために有用です。

私も同じエラーメッセージを持っていました。最終的に、問題は第2引数の名前が無効であること、すなわち、私は次のような行を持っていました。

   window.open('/somefile.html', 'a window title', 'width=300');

問題は、'a window title' が有効でないことでした。以下の行で問題なく動作しました。

   window.open('/somefile.html', '', 'width=300');

実は、よく読んでみると、マイクロソフトは name を第2引数としてサポートしていないことに気づきました。を見ると 公式ドキュメントページ を見ると、Microsoftは以下の引数しか許可していないことがわかります。 その引数を全く使わない場合。

  • _blank
  • メディア
  • 検索
  • 自分自身
  • トップ