簡體   English   中英

如何阻止 javascript 重定向頁面?

[英]How do I stop javascript from redirecting the page?

我們運行了一些流行的網站,但在頁面加載時,廣告將移動用戶重定向到其他網站和應用程序商店時遇到了問題。 有沒有辦法阻止javascript更改url?

我有一些想法,但還沒有做任何工作:

  • 使用 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";

如果廣告位於 iFrame 中,請將sandbox屬性添加到 iFrame 標記。 根據 w3schools 它將防止以下...

  • 將內容視為來自獨特的來源
  • 阻止表單提交
  • 阻止腳本執行
  • 禁用 API
  • 防止鏈接針對其他瀏覽上下文
  • 阻止內容導航其頂級瀏覽上下文
  • 阻止自動觸發的功能(例如自動播放視頻或自動聚焦表單控件)

注意- 這是一個 HTML5 功能,在舊瀏覽器中不起作用

使用標准 javascript 代碼時,最簡單的解決方案是將您的移動代碼底價提高到 0.45 美元以上(您不需要高於 0.55 美元)。

在大多數情況下,我們看到移動重定向大多采用 300x250 尺寸,但也看到它出現在 728x90 上,尤其是在移動設備上顯示時(因為 728x90 更適合桌面設備,而移動設備上對該尺寸的需求極低,這意味着不良廣告獲勝通過支付更便宜的價格)。

如果您使用 prebid.js、其他標頭出價或多出價標簽,在大多數情況下,您將能夠在將單元代碼附加到頁面之前以編程方式檢查廣告負載。

這提供了一個極好的機會來正則表達式/搜索設置 window.location 的代碼的廣告負載字符串,並使開發人員能夠在檢測到時采取特定操作(例如繞過不良廣告並改為顯示受信任的剩余解決方案或自家廣告)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM