3

JavaScript を使用してウィンドウを開くと、開いているウィンドウ/タブへの参照をキャプチャすることができます。これを使用して、ウィンドウ/タブが再び閉じられたかどうかなどを確認できます。このようなもの(やや不自然な例):

var foo = window.open( 'http://www.foo.bar' );
...
if ( !foo || foo.closed ) {
    ...

しかし、アンカー要素を使用して同様のことを達成することは可能ですか? たとえば、リンクがある場合

<a href="http://www.foo.bar" target="_blank">Foo</a>

私の Web サイトで、イベント リスナーをアタッチし、このアンカー要素がトリガーされたときに開いているウィンドウ/タブへの参照を取得し、これを JavaScript で使用する方法はありますか? クリックイベントをリッスンすることはできますが、それをより適切にカバーする他の方法はありますか? (たとえば、アンカー要素にタブで移動し、Enter キーを押して開くこともできますが、これはクリック イベントとして登録されません)。

4

1 に答える 1

1

アンカー タグにフォーカスがあるときに Enter キーを押すと、最新のブラウザーでクリック イベント ハンドラーが起動します。Chrome 30 でこれをテストしました。

証明: http://jsfiddle.net/HZvPT/

したがって、クリック ハンドラーはhref属性を取得し、呼び出しwindow.open(ウィンドウの戻り​​値を格納) しe.preventDefault()、アンカー タグがデフォルトの動作を実行するのを停止します (これは、2 つ目のウィンドウを開くため、好ましくありません)。

于 2013-10-23T14:35:55.297 に答える