年末的時候活動總是特別多,最近在處理公司的活動網頁時遇到一個挺鬼的問題,問題在於某個網頁區塊會被莫名的加上 style="display: none !important; min-height: 0px !important; height: 0px !important;"
先簡單的說明這段 code 的意思!
當這組 code 出現時,意味著受影響的元素會被隱藏起來,且該元素的高度會被設為 0,更狠的是 !important 讓這組元素無視 CSS 的權重規則強制覆蓋,一整個就是要你消失的狠勁躍然螢幕。
在古代,如果得罪的皇帝要被問斬,也得等到適合肅殺的秋天。等待的期間,可能皇帝心軟了,可能同僚替你說情。總之,在問斬之前都還有刀下留人的可能。而這組 code 則完全不留情面,它不是秋後問斬,而是斬立決,完全不讓你有任何解釋的機會。
但問題是,我不可能在自家公司的活動上使用類似的語法,而鬼的地方就在這裡,它就是出現了。
廣告臉的鍋
在排除了幾個疑似的問題點,又問了 AI,還是一籌莫展,找不出原因。
就快要放棄買乖乖、找救兵時,目光掃過瀏覽器時撇見 AdGuard (一種擋廣告的插件) 的 Icon,這才猛然閃過一個想法:該不會是被當成廣告給擋了吧?!
有了想法之後立馬打開 VSCode,找到網頁上受影響的區塊,區塊的名字叫 .ad-zone,就長著一副快來擋我的廣告臉。
果然,改了名稱之後,原本的隱藏起來的元素就出現了。
給開發者的「安太歲」清單
事後,我請 AI 列出一些容易被攔廣告插件拒絕的關鍵字,分享給大家。服用後,小則身強體壯,大可富國安邦,永保活動順利不見鬼。
- 最危險關鍵字,這類字眼幾乎 100% 會被殺掉:ad (如 .ad-zone, .sidebar-ad, .top-ad)、adsense、advert/advertising、advertisement、sponsor/sponsored
- 版位與橫幅類,即便只是活動看板,用這些名字也很危險:banner (如 .home-banner, .top-banner)、pop-up / popup (常被視為彈出式廣告)、overlay-wrapper、floating-box
- 行銷與推廣類:promo / promotion (如 .promo-list)、marketing、affiliate (聯盟行銷)、campaign
- 追蹤與分析類:有時不僅是隱藏元素,甚至會阻止腳本執行:analytics、tracking/tracker、pixel (如臉書或 Google 的追蹤像素)、telemetry