Window: opener プロパティ

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Window インターフェイスの opener プロパティは、 open() によって、または target 属性の付いたリンクの操作によって開かれたウィンドウを開いたウィンドウへの参照を返します。

言い換えれば、ウィンドウ A がウィンドウ B を開いた場合、 B.openerA を返します。

Window 風のオブジェクトで、(window.open() を使用するか、または target 属性が設定されたリンクによって)現在のウィンドウを開いたウィンドウ(オープナー)を参照します。このウィンドウが他のウィンドウにリンクされたり作成されたりして開かれたものでない場合は null を返します。

オープナーが現在のページと同じオリジン上にない場合、オープナーオブジェクトの機能は制限されます。例えば、ウィンドウオブジェクトの変数と関数はアクセスすることができません。しかし、オープナーウィンドウのナビゲーションは利用可能です。これは、開かれたページが元のタブやウィンドウで URL を開くためのものであることを意味しています。場合によっては、これによりフィッシング攻撃が可能であり、元のウィンドウで開かれた信頼できるページが、新しく開かれたページによってフィッシングページに置き換えられてしまいます。

以下の場合、ブラウザーは window.opener を生成せず、 null のままにします。

  • リンクに rel=noopener を指定するか、 noopenerwindowFeatures 引数に渡すことで、オープナーを消すことができます。
  • target_blank であるリンクによって開かれたウィンドウは、明示的に rel=opener を要求しない限り、 opener になることはありません。
  • 値が same-origin である Cross-Origin-Opener-Policy ヘッダーがあると、 opener を設定することができません。新しいウィンドウは異なる閲覧コンテキストで読み込まれるので、開くためのウィンドウを参照することはありません。

仕様書

Specification
HTML Standard
# dom-opener-dev

ブラウザーの互換性

BCD tables only load in the browser