|
還是同樣的問題:安裝了超級兔子IE工具條的用戶購買自動發貨商品時,LightBox形式的購買提醒框剛一顯示就消失了。而灰蒙的遮蔽層依然顯示,用戶又無法繼續操作了。
根據研究,超級兔子對屏蔽廣告的屏蔽原則更為武斷,只要是在JavaScript代碼中出現類似 “div.style.position=absolute” 的代碼,div 就會被隱藏,不僅如此,超級兔子還會檢查頁面中的元素,只要一個元素以inline形式設置了position樣式屬性以及配套的任一個top/left屬性,比如”<div style=”position:absolute;top:0;”>xxx</div>”,那么也會將其隱藏。
但與瑞星卡卡不同之處在于,超級兔子并不會把絕對定位元素從DOM中抹除。而是設置元素的style.visibility = hidden。這就是為什么自動發貨的購買提醒框消失的原因。
如何避免超級兔子的槍盲目射擊呢?其實很簡單,不要用JavaScript 或者以inline的形式設置絕對定位相關的CSS屬性即可。可以把這些CSS屬性直接通過class或id的形式定義在樣式單文件或<style/>中(本來也應該這么做)。
如果不得不用JavaScript設置絕對定位屬性,比如一些菜單/動畫的效果。就要通過腳本的辦法來解決了,還記得超級兔子和瑞星卡卡對浮動廣告的處理區別嗎?偽碼可能如下:
復制代碼 代碼如下:
<script type=”text/Javascript”>
function setPosition() {
FloatLayer.style.top = y;
FloatLayer.style.left = x;
setTimeout(checkSR, 100);
}
function checkSR() {
if (FloatLayer.currentStyle && FloatLayer.currentStyle.visibility=='hidden'))
fixUp();
}
</script>
我也痛恨浮動廣告,可是淘寶的頁面真的很干凈了,不是嗎
JavaScript技術:超級兔子讓浮動層消失的前因后果,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。