如何阻止javascript重定向页面?

时间:2016-04-07 19:15:10

标签: javascript ads

我们运行了一些热门网站,并且在网页加载时,广告将移动用户重定向到其他网站和应用商店时遇到问题。有没有办法阻止javascript更改网址?

我有几个想法,但还没有做任何事情:

  • 使用beforeunload停止指示远离页面,但我需要通过点击某些内容告诉用户是否打算离开

  • 使用window.MutationObserver来监控DOM,但我不确定这可用于监控对window.location的更改

任何人都有解决方案吗?

更新

我尝试了以下建议添加"沙盒"属于保存广告的iframe。在我的测试页面上,它确实阻止了我的页面运行重定向,但是当我进行直播时它并没有停止广告重定向!因此,我猜测他们正在使用另一种通过沙盒阻止的方法重定向页面。任何人都有任何想法如何做到这一点?

example iframe:
<iframe sandbox="allow-forms allow-pointer-lock allow-scripts" ..

example iframe html (redirect):
window.top.location.href = "example.com";

2 个答案:

答案 0 :(得分:1)

如果广告位于iFrame中,请将sandbox属性添加到iFrame标记中。每个w3schools它将阻止以下...

  • 将内容视为来自独特的来源
  • 阻止表单提交
  • 阻止脚本执行
  • 禁用API
  • 阻止定位链接 其他浏览环境
  • 阻止内容导航其顶级浏览上下文
  • 阻止自动触发的功能(例如自动播放视频或自动聚焦表单控件)

注意 - 这是HTML5功能,在旧版浏览器中不起作用

答案 1 :(得分:0)

使用标准的javascript代码时,最简单的解决方案是将您的移动代码下限提高到0.45美元以上(您不需要高于0.55美元)。

在大多数情况下,我们看到移动重定向主要是300x250尺寸,但也见过它在728x90上,特别是在移动设备上显示时(因为728x90更适合桌面设备,而且这种尺寸的需求在移动设备上非常低,这意味着通过支付更便宜的价格赢得糟糕的广告。)

如果您使用prebid.js,其他标题出价或多出价标签,则在大多数情况下,您可以在将单元代码附加到页面之前以编程方式检查广告有效负载。

这为正在设置window.location的代码的正则表达式/搜索广告有效负载字符串提供了绝佳机会,并使开发人员能够在检测到时采取特定操作(例如绕过不良广告,而是显示受信任的补余解决方案或房屋广告)。