背景と課題
- 元ウィンドウから、
target="_blank"
属性を利用して新ウィンドウを開く - 新ウィンドウの
window.opener.location.reload(true);
という処理で元ウィンドウをリロードする
という処理がある日動かなくなり、次のようなエラーがConsoleに出ていた。
Uncaught TypeError: Cannot read properties of null (reading 'location')
解決策
元ウィンドウのリンクに、rel="opener"
属性を追加する。ただし、リンク先は自身が管理しているページだけにすること。
どうやらブラウザのセキュリティ仕様のせいで、仕様が変わったみたい。
<a href="/foobar.html" target="_blank" rel="opener" >新たにウィンドウを開く</a>