0

问题如下。当我从我的站点单击链接(FF 浏览器)进入某个页面时,我被重定向到一个不需要的站点。并且会弹出一些窗口,您可以在其中选择是留下还是离开该站点。当您单击我想留下时,窗口再次弹出。发生这种情况是因为该站点已内置以下脚本:

变量退出=真;window.onbeforeunload = function () {
var goto_url = 'http://some site'; 如果(退出==真){
退出=假;window.location.replace(goto_url);
return " 特别优惠:1 送 2!"; } }

当我使用IE8浏览器时不会出现这种情况,然后一切正常。javascript代码中是否有任何解决方案?否则,我可以在进入外部站点时阻止不需要的重定向吗?我认为这一定是与 FF 浏览器相关的一些错误。

有人可以帮我解决这个问题,因为我试图在没有运气的情况下到处寻找解决方案。

谢谢

4

3 回答 3

0

这不能严格通过 JavaScript 完成,因为 Firefox 没有在加载时拦截另一个网站的 JavaScript 的本地方式。

也就是说,还有另一个选项可能对您有用,甚至比编写自己的 JavaScript 更简单:

http://www.bala-krishna.com/how-to-block-website-redirection-from-firefox-browser/ 首先,我建议尝试此链接,并验证您的设置是否已设置。这可能已经被选中,如果是这样,取消选中它也无济于事。但如果没有,请先尝试启用此字段,看看是否有帮助。

如果没有,你可以试试这个 Firefox 扩展: https ://addons.mozilla.org/en-US/firefox/addon/noredirect/

它将允许您阻止所有站点的重定向,或者仅阻止您选择的特定站点。

于 2011-10-06T21:34:35.697 回答
0

好的,对于那些安装了该扩展的人来说,有“Grease Monkey”扩展。我需要防止所有将点击链接(在我的网站上)的用户重定向到指向外部网站的链接。这个问题要复杂得多。我相信对此有任何解决方案。例如,此脚本使单击外部站点的链接后无法重定向。当外部站点尝试重定向时,用户只需留在我的站点上。

var prevent_bust = 0 window.onbeforeunload = function() { prevent_bust++ } setInterval(function() { if (prevent_bust > 0) { prevent_bust -= 2 window.top.location = 'my site.html' // 用链接替换你的 iframe } }, 1)

因此,可以以某种方式控制外部站点的行为。现在我需要在这个脚本中进行一些修改,它会重定向到不需要的站点,让我能够到达正确的站点。

还有一件事。问题是有这个脚本的网站,

> var exit=true; window.onbeforeunload = function () {
> var goto_url = 'http://some site';
> if(exit==true){
> exit=false; window.location.replace(goto_url);
> return " Special Offer: Get 2 For 1 Price!"; } }

当我进入网站时不应该重定向,但当我离开她时。所以我不理解这种行为,但我需要做点什么,以某种方式破解它。

于 2011-10-07T14:49:18.310 回答
0

你能给我一些可以防止javascript注入的代码示例吗?我非常关心这个特定的广告商。也许我会在框架内打开一个外部站点或其他站点。也许必须有一些php脚本。必须有办法解决这样的问题。不可能,无论如何都是可能的。

我在互联网上找到了一个视图代码,但不知道它是如何工作的。

举个例子:

1.

<script type="text/javascript">
if(top != self) {
top.onbeforeunload = function() {};
top.location.replace(self.location.href);
}
</sript>

2.

<script type="text/javascript">
var prevent_bust = 0  
var id = setInterval(function() {  
if (prevent_bust > 0) {  
prevent_bust -= 2  
window.top.location = 'somesite_com.htm';  
}  
}, 1)                 
window.onbeforeunload = function() { prevent_bust++ }  
window.onclick = function() { clearInterval(id)}
</script>

3.

<script type="text/javascript">
<!-- 
if (parent != self  && !/^http:\/\/((www\.)|())somesite\.host>
\.com/.test(top.location.href))
top.location.replace(self.location.href);
// -->
</script>

4.

<script>
javascript:void(d=document);if(frames.length){alert('Script%20doesn/'t%20work%20in%20frames');}
else{while((el=d.getElementsByTagName('script')).length){el[0].parentNode.removeChild(el[0]);};onerror=function(){};d.close();}
</script>

所以还有什么建议。谢谢有趣。

于 2011-10-12T14:25:39.077 回答