剛搞定了瑞星卡卡,又沖來個超級兔子。不過超級兔子的槍法真的有待改善。
還是同樣的問題:安裝了超級兔子IE工具條的用戶購買自動發(fā)貨商品時,LightBox形式的購買提醒框剛一顯示就消失了。而灰蒙的遮蔽層依然顯示,用戶又無法繼續(xù)操作了。
根據(jù)研究,超級兔子對屏蔽廣告的屏蔽原則更為武斷,只要是在JavaScript代碼中出現(xiàn)類似 “div.style.position=absolute” 的代碼,div 就會被隱藏,不僅如此,超級兔子還會檢查頁面中的元素,只要一個元素以inline形式設(shè)置了position樣式屬性以及配套的任一個top/left屬性,比如”<div style=”position:absolute;top:0;”>xxx</div>”,那么也會將其隱藏。
但與瑞星卡卡不同之處在于,超級兔子并不會把絕對定位元素從DOM中抹除。而是設(shè)置元素的style.visibility = hidden。這就是為什么自動發(fā)貨的購買提醒框消失的原因。
如何避免超級兔子的槍盲目射擊呢?其實很簡單,不要用JavaScript 或者以inline的形式設(shè)置絕對定位相關(guān)的CSS屬性即可?梢园堰@些CSS屬性直接通過class或id的形式定義在樣式單文件或<style/>中(本來也應(yīng)該這么做)。
如果不得不用JavaScript設(shè)置絕對定位屬性,比如一些菜單/動畫的效果。就要通過腳本的辦法來解決了,還記得超級兔子和瑞星卡卡對浮動廣告的處理區(qū)別嗎?偽碼可能如下:
<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>
我也痛恨浮動廣告,可是淘寶的頁面真的很干凈了,不是嗎
本文鏈接:http://m.95time.cn/tech/site/2007/4517.asp
出處:Taobao.com UI Team
責(zé)任編輯:moby
◎進(jìn)入論壇網(wǎng)站綜合、網(wǎng)頁制作版塊參加討論
|