window.open(undefined)はブラウザによって結果が異なる
3204 ワード
概要
タイトルそのままですが、
JavaScriptで
window.open(hoge, '_self');
としたとき、変数hoge
がundefined
だった場合の動作が主に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へ移動)というよくわからないブラウザ差異を生み出していた
Author And Source
この問題について(window.open(undefined)はブラウザによって結果が異なる), 我々は、より多くの情報をここで見つけました https://qiita.com/khsk/items/4db2ada3b15850d20088著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .