国产99福利精品视频|杨幂精品国产福利在线|国精品午夜福利视频不卡|欧美精品黄网站在线播放|精品国产乱码久久久久久久|国产大片中文字幕在线观看|国产肥熟女视频一区二区三区|国产乱码无码视频一区二区三区

非IE瀏覽器對(duì)彈窗的過濾討論

來源:北大青鳥飛迅校區(qū)|發(fā)布時(shí)間:2013-04-27 15:55:48

  廣告窗口的泛濫使得不少網(wǎng)民不堪鋪天蓋地的廣告騷擾紛紛放棄標(biāo)準(zhǔn)IE瀏覽器而使用諸如GoSurf、MyIE2、NetCapter這樣的使用IE內(nèi)核支持多頁面并能自動(dòng)屏蔽廣告的軟件。據(jù)說在即將發(fā)布的IE6 sp2中微軟也將加入封殺廣告窗口功能。

  這對(duì)大多數(shù)網(wǎng)民當(dāng)然是件好事,可對(duì)于程序員而言,我們使用彈出窗口的方式與一般廣告并無本質(zhì)的不同,這樣的窗口也會(huì)被彈出窗口管理器不分青紅皂白的封殺,其結(jié)果當(dāng)然是我們不愿看到的。有沒有一個(gè)標(biāo)準(zhǔn)的方式能讓窗口正常的彈出呢?這就要求我們了解瀏覽器封殺廣告的原理。通常的廣告封殺器使用以下三種方式進(jìn)行廣告過濾:

  (1)基于窗口標(biāo)題的封殺方式

  這種封殺方式的原理是定時(shí)檢查所有的IE窗口標(biāo)題,然后于已經(jīng)有的列表(由程序維護(hù)的一個(gè)數(shù)組列表)來比較,如果有相同的,我們就關(guān)閉這個(gè)窗口。顯然,這種方式有著諸多缺陷,它封殺了所有的彈出的窗口,管得太死,在程序真正使用的很少。不過,依據(jù)它進(jìn)行的變形方式倒使用得相當(dāng)?shù)钠毡。那就是,基于窗口?biāo)題名稱的智能過濾技術(shù),它根據(jù)彈出窗口的標(biāo)題是否含有關(guān)于廣告的關(guān)鍵字進(jìn)行封殺,這為提高過濾效果作出了很好的探索。

  (2)基于窗口類和位置的封殺方式

  經(jīng)過分析發(fā)現(xiàn)正常瀏覽窗口的類名是IEFRAME和CabinetWClass,而廣告窗口的類名是CabinetWClass。進(jìn)一步分析發(fā)現(xiàn):廣告窗口的WorkerA類和Shell DocObject View類的rect.top的值是相同的,正常IE窗口的WorkerA類和Shell DocObject View類的rect.top的值是不相同的。根據(jù)以上兩點(diǎn)就可以書寫廣告殺手程序了。 事實(shí)上,我對(duì)此程序的通用性持懷疑態(tài)度。因?yàn)楣P者用Spy++分析發(fā)現(xiàn),在Windows2000( 筆者使用的操作系統(tǒng))中,IE窗口的類都為IEFrame。同時(shí),由于Win2000是一個(gè)基于Unicode代碼的操作系統(tǒng),所以沒有WorkerA類,而以WorkerW類取而代之。同時(shí),也不存在rect.top不相同的情況,由于筆者沒有WindowsXP操作系統(tǒng),所以不能針對(duì)WindowsXP作進(jìn)一步的試驗(yàn)。

  (3)基于IE COM組件的封殺方式

  以上兩種方式都是把IE窗口當(dāng)作一個(gè)普通的Windows窗口對(duì)待,進(jìn)行判斷的。事實(shí)上,IE是一個(gè)典型的基于COM組件的瀏覽器,所有的基于IE內(nèi)核的瀏覽器都是包裝shdocvw.dll文件,然后書寫相應(yīng)的BHO代碼。只有這樣才能做到真正的控制IE瀏覽器,而不是方法一、二這樣的隔靴搔癢。

  還有一種基于IE內(nèi)核的彈出窗口封殺方法。它可以在彈出窗口打開之前加以攔截。其原理是:每當(dāng)IE打開一個(gè)新的窗口時(shí)候都會(huì)觸發(fā)NewWindow事件,執(zhí)行OnNewWindow2([out] IDispatch*, [out] BOOL *bCancel)方法。重載此方法,判斷打開新窗口事件是否發(fā)生在瀏覽頁面已經(jīng)下載完畢之后。如果是,說明是正常的彈出窗口,反之加以攔截。

  由于Gosurf這樣的瀏覽器本身就重載了Shocvm.dll組件,所以使用第三種方法就自然成了順理成章的事。然而在使用過程中有時(shí)也會(huì)發(fā)現(xiàn),廣告過濾不很完美,但原理基本如此。

上一篇:怎樣才算掌握J(rèn)ava編程?
下一篇:J2ME學(xué)習(xí)需要的一些Java知識(shí)

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學(xué)校地址: 長(zhǎng)沙市天心區(qū)團(tuán)結(jié)路6號(hào)

Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有

湘ICP備14017520號(hào)-3

關(guān)注我們
在線咨詢
嘿,我來幫您!