假设我通过将锚标记的目标设置为“_blank”,在同一个域上为网站打开一个新窗口。有没有办法访问开放的Windows DOM?
答案 0 :(得分:0)
是的,但它不必是同一个域;这不好;这是HTML标准中的漏洞。这是一个例子:
<a href="http://www.somerandomwebsite.com/somepage.html" target="_blank">Link</a>
请注意,它不必是_blank的目标,基本上不是_parent,_self或_top。
然后在后续页面(somepage.html)上你可以这样做:
<script>
if (window.opener) {
opener.location = 'https://www.google.co.nz';
} else {
alert('I could not do any haxxing!');
}
</script>
也许这对你很好,因为你问你是否可以这样做?但是对于其他读这篇文章的人 - 你能做些什么呢?不多......我建议不要在新窗口中打开链接。你可以添加rel =“noreferrer”但是你隐藏了引用者信息;不理想。
答案 1 :(得分:0)
我意识到这是一个古老的问题,但是对于任何可能偶然发现它的人来说,似乎在使用target =“ _ blank”定位标记窗口时,默认情况下,某些浏览器中定义了opener,而其他浏览器则未定义(特别是Safari和Firefox的window.opener为空。但是,如果将属性rel =“ opener”添加到锚标记中,它将正确填充window.opener。
答案 2 :(得分:-4)
你可以理解更好的window.open阅读这篇*文章,但我知道多少同样的事情,但请记住,taget =“_ blank”这是一个来自HTML和window的属性。打开它是一个javascript原型解决方案,其中您用来创建一个功能来为您的网站添加一些功能。