私は問題に直面しています.window.openメソッドを使用してウィンドウを開くことができます.ウィンドウの高さと幅を指定すると、ポップアップウィンドウとして開きます.高さまたは幅にパラメータが指定されていない場合,新しいタブで開きます。
開いたウィンドウがポップアップまたは新しいタブであると判断できるプロパティはありますか?
ありがとうマルコムX
私は問題に直面しています.window.openメソッドを使用してウィンドウを開くことができます.ウィンドウの高さと幅を指定すると、ポップアップウィンドウとして開きます.高さまたは幅にパラメータが指定されていない場合,新しいタブで開きます。
開いたウィンドウがポップアップまたは新しいタブであると判断できるプロパティはありますか?
ありがとうマルコムX
編集:私はこれをもう少し調べています。
これらのウィンドウには異なる「タイプ」はなく、単に異なるオプションがあるようです。それがタブかウィンドウかを確認するために私が見つけた方法は、確認することwindow.menubar.visible
です。フルで通常のウィンドウであるタブの場合はtrue
であり、ポップアップの場合はメニューが非表示になっているため ですfalse
。についても同様window.toolbar.visible
です。
少なくとも FF と Chrome で動作します。残念ながらIEにはありません。(テストは、私がインストールしたバージョンであるIE8で行われました。もちろんテスト用です..)
例:
if(window.menubar.visible) {
//Tab
} else {
//"Child" Window
}
このスレッドを見つけました: Internet Explorer 8 JS エラー: 'window.toolbar.visible' が null またはオブジェクトではありません
幅と高さを指定する場合は、name
パラメーターも指定する必要があることを意味します。target
これは、a
タグが使用されるのと同じ方法で使用でき、デフォルトは_blank
です。
幅と高さを指定しない場合は、指定もしないと想定されるため、新しいタブを意味する でname
開かれます。name=_blank
幅と高さを指定する場合、カスタムを設定していますname
か? これを行うと、子ウィンドウが表示されます。名前または空の文字列を名前として指定する場合、name:_blank
それを新しいタブにしたい場合は試してみることをお勧めします。
名前を付けてウィンドウを開いた場合はwindow.parent
、子ウィンドウからいつでも実行できます。で開いた場合_blank
、取得できるかどうかわかりませんwindow.parent
質問の意味がよくわかりませんが、私が理解していることから、HTMLターゲット属性を使用することをお勧めします。
_blank Opens the linked document in a new window or tab
_self Opens the linked document in the same frame as it was clicked (this is default)
_parent Opens the linked document in the parent frame
_top Opens the linked document in the full body of the window
framenameリンクされたドキュメントを名前付きフレームで開きます
焦点が合っていないかどうかを確認することで、onblur を使用してそれを検出できます。
<html>
<head>
<script>
function newTab() {
document.getElementById("demo").innerHTML = "New tab opened!<br><br>refesh this page to recheck ";
}
window.onblur = newTab;
</script>
</head>
<body>
<div id="demo">
Open a new tab and then check this page
</div>
</body>
</html>