在Mac OS 10.7上使用最新版本的Chrome。
我认为这是一个聪明的javascript,可以启用这个网页上的人:
...关闭首先打开(chairworks.com)页面的我(父母)页面。
我没有使用javascript打开它们,但使用带有<a>
属性的target="_blank"
标记。
如果我禁用了javascript,则行为会停止。
<a href="http://www.chairworks.com" target="_blank">www.chairworks.com</a>
我希望chairworks.com/上的页面只是在另一个标签/窗口中打开...但我发现只要新的浏览器标签打开,它就会关闭,然后我的页面(父选项卡/窗口)被重定向到chairworks.com页面。
有点粗鲁。
有人能指出我的代码能让他们做到这一点吗?我该如何预防呢? (假设我希望链接按预期运行,例如在我的演示页面中。)
答案 0 :(得分:5)
我认为正确的做法是设置相应的链接类型属性,这样浏览器就不会为目标窗口提供opener
引用。
<a href="https://untrusted-site.org" target="_blank" rel="noreferrer noopener">Link</a>
您可以在此处详细了解链接类型:https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types
答案 1 :(得分:2)
这是他们正在使用的脚本:
setTimeout('redirect_page()',0);
function redirect_page(){if (window.opener) { window.opener.location.href = '/home.html'; window.close(); } else { location.href = '/home.html'; }}
至于如何规避它(只是一个想法):
创建自己的空白页面,将其源设置为about:blank。当它加载时(或超时后)你可以写一些代码到那个窗口,然后打开有问题的链接。
然后违规链接就会关闭你的缓冲页面。 F * ck'm !!为用户提供动力!
编辑:看起来您也可以将您的网页命名为home.html
呵呵,但这不是一个可行的解决方案..
最终编辑: SIMPLE LOGIC人......
<a href="http://www.chairworks.com/home.html" target="_blank">www.chairworks.com</a>
适合所有人,不需要javascript
请参见此工作jsfiddle example。
答案 2 :(得分:1)
正如@GitaarLAB所解释的那样,目标网站使用window.opener
属性来访问您的页面。自己使用一些Javascript,并在中间使用about:blank
页面,可以帮助您减少对页面的访问权限。这就像是:
<a href="http://www.chairworks.com/" target="_blank" onclick="var w = window.open('about:blank'); w.opener = null; w.open('http://www.chairworks.com/'); return false;">http://www.chairworks.com/</a>
一些注意事项:
href
属性留给那些没有启用JS的用户(猜猜是什么!目标网站不会有JS!),或搜索引擎等网络抓取工具(只有那些不喜欢的人)虽然不关心JS的东西。window.opener
属性来剪切反向链接。return false;
,以防止浏览器使用href
和target
属性。