假設你當前在瀏覽一個頁面,上面有個連接(多是用戶輸入的):html
[點擊](http://keenwon.com/)
在新打開的標籤頁經過window.opener ,能夠得到當前頁面的window 。這樣的話,http://keenwon.com (被打開的頁面)將得到當前頁面的部分控制權,即便新打開的頁面是跨域的也照樣能夠(例如location 就不存在跨域問題)。
你們試試這個demo( http://keenwon.com/demo/201603/noopener.html ),demo只是跳到了百度首頁,可是若是跳到了釣魚網站呢?直接提示用戶登陸,而此時用戶注意力集中在新開標籤頁裏,極可能不會注意到原頁面在後臺的變化。chrome
在chrome 49+,Opera 36+,打開添加了rel=noopener的連接,window.opener 會爲null。在老的瀏覽器中,能夠使用 rel=noreferrer 禁用HTTP頭部的Referer屬性,使用下面JavaScript代替target='_blank' 的解決此問題:跨域
var otherWindow = window.open('http://keenwon.com'); otherWindow.opener = null; otherWindow.location = url;
使用window.open 打開頁面,手動劍opener設置爲null。瀏覽器