我们运行了一些热门网站,并且在网页加载时,广告将移动用户重定向到其他网站和应用商店时遇到问题。有没有办法阻止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";
答案 0 :(得分:1)
如果广告位于iFrame中,请将sandbox
属性添加到iFrame标记中。每个w3schools它将阻止以下...
注意 - 这是HTML5功能,在旧版浏览器中不起作用
答案 1 :(得分:0)
使用标准的javascript代码时,最简单的解决方案是将您的移动代码下限提高到0.45美元以上(您不需要高于0.55美元)。
在大多数情况下,我们看到移动重定向主要是300x250尺寸,但也见过它在728x90上,特别是在移动设备上显示时(因为728x90更适合桌面设备,而且这种尺寸的需求在移动设备上非常低,这意味着通过支付更便宜的价格赢得糟糕的广告。)
如果您使用prebid.js,其他标题出价或多出价标签,则在大多数情况下,您可以在将单元代码附加到页面之前以编程方式检查广告有效负载。
这为正在设置window.location的代码的正则表达式/搜索广告有效负载字符串提供了绝佳机会,并使开发人员能够在检测到时采取特定操作(例如绕过不良广告,而是显示受信任的补余解决方案或房屋广告)。