LoginSignup
1
0

More than 5 years have passed since last update.

window.open(undefined)はブラウザによって結果が異なる

Posted at

概要

タイトルそのままですが、
JavaScriptで
window.open(hoge, '_self');
としたとき、変数hogeundefinedだった場合の動作が主にIEとそれ以外で異なります。


環境毎結果

ブラウザ 結果
IE11 /undefined へ移動
Edge /undefined へ移動
Chrome 移動しない
FireFox 移動しない

コード

JSFiddleでは上手く行かなかったので手元で確認しました。
ボタン名が変われば移動しなかったとしています。

<!DOCTYPE html>

<html>
<script>
    window.onload = function () {
        document.getElementById('open').addEventListener('click', function () {
            var a;
            window.open(a, '_self');
            document.getElementById('open').innerText = 'end';
        })
    }

</script>
<body>
<button id="open">oepn</button>
</body>
</html>

遭遇箇所が、処理が失敗した場合は移動しないという仕様で、開発ブラウザでは見た目上エラーもなく、移動もせずで仕様通りだった。
また、URLをスラッシュ区切りでパラメーターとして扱うフレームワークだったので、
IEの場合は、失敗時にリロードが起こる(実はundefinedパラメータ付きでのURLへ移動)というよくわからないブラウザ差異を生み出していた

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0