專利名稱:瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法、裝置及瀏覽器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法、裝置及瀏覽器。
背景技術(shù):
ActiveX插件以前也叫做0LE(0bject Linking and Embedding,對(duì)象鏈接與嵌入)控件或OCX (OLE Control extension,對(duì)象類別擴(kuò)充)控件,它是一些軟件組件或?qū)ο?可以將其嵌入到WEB網(wǎng)頁(yè)或其它應(yīng)用程序中。當(dāng)在瀏覽器中加載ActiveX插件時(shí),也可稱該ActiveX插件為活動(dòng)對(duì)象。如果ActiveX插件被嵌入到網(wǎng)頁(yè)中,在用戶打開網(wǎng)頁(yè)時(shí),會(huì)自動(dòng)觸發(fā)ActiveX插件的加載和播放。目前,很多網(wǎng)頁(yè)上都嵌入有各種音視頻插件,例如Flash插件,其內(nèi)容可能是一些廣告或用戶并不關(guān)心的內(nèi)容。只要用戶打開網(wǎng)頁(yè)就會(huì)在第一時(shí)間自動(dòng)加載播放這些Flash內(nèi)容。對(duì)于用戶來說,這種不必要的插件播放造成了用戶資源的浪費(fèi),例如浪費(fèi)電力、帶寬和系統(tǒng)資源,而且還延長(zhǎng)了頁(yè)面打開時(shí)間?,F(xiàn)有技術(shù)提供了一種攔截Flash創(chuàng)建的方法,使用自帶的swf,替換需要?jiǎng)?chuàng)建的Flash來實(shí)現(xiàn),swf是Flash本地的一種支持矢量和點(diǎn)陣圖形的動(dòng)畫文件格式。但是由于在頁(yè)面的創(chuàng)建過程中可能需要與Flash進(jìn)行交互,如果將Flash替換為swf,則因無法完成交互而無法創(chuàng)建Flash。當(dāng)用戶需要重新播放Flash時(shí),必須刷新頁(yè)面,重新創(chuàng)建Flash才能進(jìn)行播放。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法和相應(yīng)的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置及瀏覽器。根據(jù)本發(fā)明的一個(gè)方面,提供了一種瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法,包括在瀏覽器創(chuàng)建活動(dòng)對(duì)象之前,阻止創(chuàng)建所述活動(dòng)對(duì)象;根據(jù)用戶發(fā)起的執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求,繼續(xù)創(chuàng)建所述活動(dòng)對(duì)象,而后執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能。根據(jù)本發(fā)明的一個(gè)方面,提供了一種瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置,包括阻止模塊,適于在瀏覽器創(chuàng)建活動(dòng)對(duì)象之前,阻止創(chuàng)建所述活動(dòng)對(duì)象;第一創(chuàng)建模塊,適于根據(jù)用戶發(fā)起的執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求,繼續(xù)創(chuàng)建所述活動(dòng)對(duì)象;執(zhí)行模塊,適于在所述第一創(chuàng)建模塊創(chuàng)建所述活動(dòng)對(duì)象之后,執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能。根據(jù)本發(fā)明的一方面,提供了一種包括上述瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置的瀏覽器。根據(jù)本發(fā)明的一個(gè)方面提供的方案,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建活動(dòng)對(duì)象之前,默認(rèn)阻止創(chuàng)建該活動(dòng)對(duì)象;在用戶發(fā)起執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求后,繼續(xù)創(chuàng)建活動(dòng)對(duì)象,并在活動(dòng)對(duì)象創(chuàng)建完成后,執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能。與現(xiàn)有技術(shù)相比,避免了不必要的插件播放造成用戶資源的浪費(fèi),節(jié)省了電力、帶寬和系統(tǒng)資源。同時(shí),在用戶有需要重新要求執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能時(shí),無需刷新頁(yè)面,實(shí)現(xiàn)了活動(dòng)對(duì)象實(shí)現(xiàn)的功能的即點(diǎn)即執(zhí)行。根據(jù)本發(fā)明的另一個(gè)方面提供的方案,在瀏覽器創(chuàng)建活動(dòng)對(duì)象之后,通過攔截線程消息循環(huán)中的定時(shí)消息或?qū)顒?dòng)對(duì)象的屬性進(jìn)行修改,阻止執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能;在用戶發(fā)起執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求后,通過取消攔截線程消息循環(huán)中的定時(shí)消息或?qū)顒?dòng)對(duì)象的屬性進(jìn)行再修改,繼續(xù)執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能。與現(xiàn)有技術(shù)相比,避免了不必要的插件播放造成用戶資源的浪費(fèi),節(jié)省了電力、帶寬和系統(tǒng)資源。同時(shí),在用戶有需要重新要求執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能時(shí),無需刷新頁(yè)面,實(shí)現(xiàn)了活動(dòng)對(duì)象實(shí)現(xiàn)的功能的即點(diǎn)即執(zhí)行。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明第一個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法的流程圖;圖2示出了根據(jù)本發(fā)明第二個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法的流程圖;圖3示出了根據(jù)本發(fā)明第三個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法的流程圖;圖4示出了根據(jù)本發(fā)明第四個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法的流程圖;圖5示出了根據(jù)本發(fā)明第五個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置的結(jié)構(gòu)框圖;圖6示出了根據(jù)本發(fā)明第六個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置的結(jié)構(gòu)框圖;圖7示出了根據(jù)本發(fā)明第七個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置的結(jié)構(gòu)框圖;圖8示出了根據(jù)本發(fā)明第八個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置的結(jié)構(gòu)框圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。在以下幾個(gè)實(shí)施例中,以創(chuàng)建Flash插件為例進(jìn)行說明,但本發(fā)明不僅限于是Flash插件,還可以是其它ActiveX插件,如百度影音、QVOD (快播)等插件。圖1示出了根據(jù)本發(fā)明第一個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法100的流程圖。如圖1所示,方法100始于步驟S101,其中在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件之前,阻止創(chuàng)建該Flash插件。具體來說,在頁(yè)面中有Flash插件的情況下,瀏覽器的頁(yè)面進(jìn)程通過CLSIDFromProgID方法獲取Flash插件的類標(biāo)識(shí)(CLSID)或者組件的字符串標(biāo)識(shí)符(ProgID),按照現(xiàn)有流程,隨后頁(yè)面進(jìn)程根據(jù)Flash插件的CLSID或ProgID查詢注冊(cè)表,用以查看系統(tǒng)是否已安裝該插件,若查看已安裝該插件則進(jìn)一步創(chuàng)建該Flash插件。但本方法與現(xiàn)有流程不同的是,在獲取CLSID或ProgID后,判斷其是否為Flash插件的CLSID或ProgID,若是則停止執(zhí)行查詢注冊(cè)表的動(dòng)作,這樣該Flash插件就不會(huì)被創(chuàng)建。需要說明的是,停止執(zhí)行查詢注冊(cè)表的動(dòng)作是阻止創(chuàng)建Flash插件的一種可選的實(shí)施方式,本方法也可在查詢注冊(cè)表確認(rèn)已安裝Flash插件之后,阻止進(jìn)一步創(chuàng)建該Flash插件。通過本步驟,雖然頁(yè)面中有Flash插件,但在頁(yè)面打開后由于阻止創(chuàng)建該Flash插件,頁(yè)面中并不會(huì)播放對(duì)應(yīng)的Flash內(nèi)容。隨后,方法100進(jìn)入步驟S102,其中根據(jù)用戶發(fā)起的執(zhí)行Flash插件功能的請(qǐng)求,繼續(xù)創(chuàng)建Flash插件,在創(chuàng)建完成后執(zhí)行Flash插件的功能,即播放對(duì)應(yīng)的Flash內(nèi)容。在頁(yè)面打開后,如果用戶想要觀看Flash內(nèi)容,可以點(diǎn)擊播放Flash,頁(yè)面進(jìn)程收到用戶點(diǎn)擊播放Flash的請(qǐng)求,不再阻止Flash插件的創(chuàng)建,繼續(xù)創(chuàng)建Flash插件。以之前停止執(zhí)行查詢注冊(cè)表的動(dòng)作為例,頁(yè)面進(jìn)程根據(jù)Flash插件的CLSID或ProgID繼續(xù)執(zhí)行查詢注冊(cè)表的操作,用以查看系統(tǒng)是否已安裝該插件,若查看已安裝該插件則進(jìn)一步創(chuàng)建該Flash插件。在Flash插件創(chuàng)建完成后,按照默認(rèn)的屬性就會(huì)播放對(duì)應(yīng)的Flash內(nèi)容,由此實(shí)現(xiàn)了 Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。根據(jù)本實(shí)施例提供的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件之前,默認(rèn)阻止創(chuàng)建該Flash插件;在用戶發(fā)起播放Flash的請(qǐng)求后,繼續(xù)創(chuàng)建Flash插件,并在Flash插件創(chuàng)建完成后,播放對(duì)應(yīng)的Flash內(nèi)容,由此實(shí)現(xiàn)了 Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。與現(xiàn)有技術(shù)相比,避免了不必要的插件播放造成用戶資源的浪費(fèi),節(jié)省了電力、帶寬和系統(tǒng)資源。同時(shí),在用戶有需要重新要求播放Flash內(nèi)容時(shí),無需刷新頁(yè)面,實(shí)現(xiàn)了 Flash內(nèi)容的即點(diǎn)即播。而且,本實(shí)施例提供的方法在加載頁(yè)面時(shí),默認(rèn)阻止創(chuàng)建Flash插件,將有限的資源用于加載頁(yè)面,提升了頁(yè)面的加載速度。圖2示出了根據(jù)本發(fā)明第二個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法200的流程圖。與上述第一個(gè)實(shí)施例不同的是,在用戶發(fā)起執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求之后,通過在頁(yè)面進(jìn)程中創(chuàng)建代理對(duì)象,而在獨(dú)立進(jìn)程中繼續(xù)創(chuàng)建活動(dòng)對(duì)象,使得真實(shí)的Flash插件與頁(yè)面進(jìn)程分離。如圖2所示,方法200始于步驟S201,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件之前,阻止創(chuàng)建該Flash插件。在頁(yè)面中有Flash插件的情況下,瀏覽器的頁(yè)面進(jìn)程通過 CLSIDFromProgID 方法獲取 Flash 插件的 CLSID 或者 ProgID,在獲取 CLSID 或 ProgID后,判斷其是否為Flash插件的CLSID或ProgID,若是則停止執(zhí)行查詢注冊(cè)表的動(dòng)作,這樣該Flash插件就不會(huì)被創(chuàng)建。停止執(zhí)行查詢注冊(cè)表的動(dòng)作是阻止創(chuàng)建Flash插件的一種可選的實(shí)施方式,本方法也可在查詢注冊(cè)表確認(rèn)已安裝Flash插件之后,阻止進(jìn)一步創(chuàng)建該Flash插件。通過本步驟,雖然頁(yè)面中有Flash插件,但在頁(yè)面打開后由于阻止創(chuàng)建該Flash插件,頁(yè)面中并不會(huì)播放對(duì)應(yīng)的Flash內(nèi)容。隨后,方法200進(jìn)入步驟S202,其中根據(jù)用戶發(fā)起的執(zhí)行Flash插件功能的請(qǐng)求,截獲瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件活動(dòng)對(duì)象的操作,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件代理對(duì)象替換實(shí)際要?jiǎng)?chuàng)建的Flash插件活動(dòng)對(duì)象,該Flash插件代理對(duì)象在頁(yè)面進(jìn)程中運(yùn)行。具體來說,在頁(yè)面打開后,如果用戶想要觀看Flash內(nèi)容,可以點(diǎn)擊播放Flash,頁(yè)面進(jìn)程收到用戶點(diǎn)擊播放Flash的請(qǐng)求,不再阻止Flash插件的創(chuàng)建,繼續(xù)創(chuàng)建Flash插件。以之前停止執(zhí)行查詢注冊(cè)表的動(dòng)作為例,頁(yè)面進(jìn)程根據(jù)Flash插件的CLSID或ProgID繼續(xù)執(zhí)行查詢注冊(cè)表的操作,用以查看系統(tǒng)是否已安裝該插件,若查看已安裝該插件則進(jìn)一步創(chuàng)建該Flash插件。這里,在頁(yè)面進(jìn)程準(zhǔn)備進(jìn)一步創(chuàng)建Flash插件時(shí),攔截CoGetClassOb ject,創(chuàng)建Flash插件代理對(duì)象,該Flash插件代理對(duì)象包括一系列接口,包括IUnknown指針(本文也稱為接口指針)將會(huì)調(diào)用的很多標(biāo)準(zhǔn)接口,例如IOleObject、IViewObject 等。然后在調(diào)用 IClassFactory 的 CreateInstance 時(shí),將所創(chuàng)建的 Flash 插件代理對(duì)象返回給頁(yè)面進(jìn)程的IUnknown指針。隨后,方法200進(jìn)入步驟S203,其中創(chuàng)建獨(dú)立于頁(yè)面進(jìn)程的獨(dú)立進(jìn)程,在該獨(dú)立進(jìn)程中,倉(cāng)Il建Flash插件活動(dòng)對(duì)象,這里的Flash插件活動(dòng)對(duì)象才是真正的Flash插件。具體地,在頁(yè)面進(jìn)程激活Flash插件代理對(duì)象時(shí),提取出該Flash插件的屬性、URL、大小等相關(guān)信息,然后創(chuàng)建一個(gè)獨(dú)立進(jìn)程。具體來說,創(chuàng)建一個(gè)文件(document),在其中插入一個(gè)對(duì)象(object),該獨(dú)立進(jìn)程調(diào)用CoGetClassObject,攔截該CoGetClassObject,創(chuàng)建一個(gè)Flash插件活動(dòng)對(duì)象。該Flash插件活動(dòng)對(duì)象包括一系列的接口,包括IUnknown指針將會(huì)調(diào)用的很多標(biāo)準(zhǔn)接口,例如IOleObject、IViewObject等。然后在調(diào)用IClassFactory的CreateInstance時(shí),將所創(chuàng)建的Flash插件活動(dòng)對(duì)象返回給獨(dú)立進(jìn)程的IUnknown指針。接著,在Flash插件代理對(duì)象和Flash插件活動(dòng)對(duì)象中分別創(chuàng)建與插件對(duì)象關(guān)聯(lián)的窗口,用于使Flash插件代理對(duì)象和Flash插件活動(dòng)對(duì)象進(jìn)行通信。通過這兩個(gè)窗口,兩個(gè)對(duì)象可以針對(duì)Flash的大小、焦點(diǎn)、刷新、腳本以及其它信息進(jìn)行交互。隨后,方法200進(jìn)入步驟S204,通過Flash插件代理對(duì)象與獨(dú)立進(jìn)程通信調(diào)用Flash插件活動(dòng)對(duì)象,和/或,F(xiàn)lash插件代理對(duì)象與獨(dú)立進(jìn)程通信被Flash插件活動(dòng)對(duì)象調(diào)用,執(zhí)行Flash插件活動(dòng)對(duì)象實(shí)現(xiàn)的功能。在Flash插件活動(dòng)對(duì)象創(chuàng)建完成后,根據(jù)用戶點(diǎn)擊播放Flash的請(qǐng)求,通過Flash插件代理對(duì)象與獨(dú)立進(jìn)程通信調(diào)用Flash插件活動(dòng)對(duì)象,使Flash插件活動(dòng)對(duì)象播放對(duì)應(yīng)的Flash內(nèi)容,由此實(shí)現(xiàn)了 Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。根據(jù)本實(shí)施例提供的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件之前,默認(rèn)阻止創(chuàng)建該Flash插件;在用戶發(fā)起播放Flash的請(qǐng)求后,在獨(dú)立進(jìn)程中創(chuàng)建真正的Flash插件,并在真正的Flash插件創(chuàng)建完成后,通過調(diào)用真正的Flash插件播放對(duì)應(yīng)的Flash內(nèi)容,由此實(shí)現(xiàn)了 Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。與現(xiàn)有技術(shù)相比,避免了不必要的插件播放造成用戶資源的浪費(fèi),節(jié)省了電力、帶寬和系統(tǒng)資源。同時(shí),在用戶有需要重新要求播放Flash內(nèi)容時(shí),無需刷新頁(yè)面,實(shí)現(xiàn)了 Flash內(nèi)容的即點(diǎn)即播。而且,本實(shí)施例提供的方法在加載頁(yè)面時(shí),默認(rèn)阻止創(chuàng)建Flash插件,將有限的資源用于加載頁(yè)面,提升了頁(yè)面的加載速度。進(jìn)一步的,在本方法中,通過在頁(yè)面進(jìn)程中運(yùn)行代理對(duì)象,而在獨(dú)立進(jìn)程中運(yùn)行活動(dòng)對(duì)象,使得真正的Flash插件與頁(yè)面進(jìn)程分離,從而使Flash插件出現(xiàn)問題時(shí)不會(huì)影響頁(yè)面進(jìn)程,提高了瀏覽器的穩(wěn)定性,尤其是當(dāng)Flash插件出現(xiàn)病毒等安全性問題時(shí),也不會(huì)對(duì)頁(yè)面進(jìn)程產(chǎn)生影響,提高了瀏覽器的安全性;同時(shí),頁(yè)面進(jìn)程出現(xiàn)問題不會(huì)影響Flash插件的正常運(yùn)行,提高了插件的穩(wěn)定性。圖3示出了根據(jù)本發(fā)明第三個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法300的流程圖。如圖3所示,方法300始于步驟S301,其中在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件之后,通過攔截線程消息循環(huán)中的定時(shí)消息或通過對(duì)Flash插件的屬性進(jìn)行修改,阻止執(zhí)行Flash插件實(shí)現(xiàn)的功能,即阻止Flash插件播放對(duì)應(yīng)的Flash內(nèi)容。在頁(yè)面中有Flash插件的情況下,瀏覽器的頁(yè)面進(jìn)程通過CLSIDFromProgID方法獲取Flash插件的CLSID或者ProgID,隨后頁(yè)面進(jìn)程根據(jù)Flash插件的CLSID或ProgID查詢注冊(cè)表,用以查看系統(tǒng)是否已安裝該插件,若查看已安裝該插件則進(jìn)一步創(chuàng)建該Flash插件。頁(yè)面進(jìn)程通過調(diào)用CoGetClassObject得到Flash插件的IUnknown指針,根據(jù)IUnknown指針調(diào)用標(biāo)準(zhǔn)接口進(jìn)行相關(guān)操作,由此完成Flash插件的創(chuàng)建。其中CoGetClassObject執(zhí)行過程為通過CLSID去注冊(cè)表查詢ActiveX路徑,獲得ActiveX路徑后,調(diào)用LoadLibrary加載Flash插件,調(diào)用導(dǎo)出函數(shù) DllGetClassObject 獲得類廠指針(IClassFactory),然后調(diào)用 IClassFactory的CreatInstance方法得到Flash插件對(duì)應(yīng)的IUnknown指針。在得到IUnknown指針的情況下,通過調(diào)用相關(guān)接口可以獲取Flash插件的默認(rèn)屬性,并對(duì)其進(jìn)行修改。通常情況下,F(xiàn)lash插件的默認(rèn)屬性為播放,此時(shí)將Flash插件的默認(rèn)屬性由播放修改為暫?;蛲V?,就達(dá)到了阻止Flash插件播放Flash內(nèi)容的目的。具體來說,根據(jù)Flash插件的IUnknown指針,可以查找到記錄Flash插件屬性的函數(shù),調(diào)用該函數(shù)就可對(duì)Flash插件的屬性進(jìn)行修改。對(duì)Flash插件的屬性進(jìn)行修改是阻止Flash插件播放Flash內(nèi)容的一種可選的實(shí)現(xiàn)方式,這種實(shí)現(xiàn)方式適用于播放動(dòng)畫的Flash插件。本方法還提供了另一種阻止Flash插件播放Flash內(nèi)容的實(shí)現(xiàn)方式,即攔截線程消息循環(huán)中的定時(shí)消息,這種實(shí)現(xiàn)方式的適用范圍更廣,播放動(dòng)畫和視頻的Flash插件都適用。具體來說,線程消息循環(huán)中的定時(shí)消息(如0x401消息)是Flash插件的驅(qū)動(dòng)消息,F(xiàn)lash插件只有定時(shí)接收到該定時(shí)消息,才會(huì)執(zhí)行其相應(yīng)的功能,本方法通過攔截該定時(shí)消息,使Flash插件接收不到這個(gè)消息,那么Flash插件就不會(huì)播放對(duì)應(yīng)的Flash內(nèi)容??蛇x地,在步驟S301之后,方法300進(jìn)入步驟S302,其中攔截Flash插件的繪制函數(shù),調(diào)用自定義的繪制函數(shù)繪制自定義界面,在瀏覽器的指定位置顯示該自定義界面。在經(jīng)過步驟S301阻止播放Flash內(nèi)容后,在瀏覽器的原本該顯示Flash內(nèi)容的指定位置就會(huì)出現(xiàn)停止播放的界面,本方法可以將該停止播放的界面替換為自定義界面,例如空屏、自定義圖片或自定義Flash等。具體采用的方法就是攔截Flash插件的繪制函數(shù),該繪制函數(shù)用于繪制停止播放的界面,調(diào)用自定義的繪制函數(shù)繪制自定義界面并顯示。隨后,方法300進(jìn)入步驟S303,其中根據(jù)用戶發(fā)起的執(zhí)行Flash插件實(shí)現(xiàn)的功能的請(qǐng)求,通過取消攔截線程循環(huán)中的定時(shí)消息或者通過對(duì)Flash插件的屬性進(jìn)行再修改,繼續(xù)執(zhí)行Flash插件實(shí)現(xiàn)的功能,即繼續(xù)播放Flash內(nèi)容。若在步驟S301中通過對(duì)Flash插件的屬性進(jìn)行修改來阻止Flash插件播放Flash內(nèi)容,本步驟則對(duì)Flash插件的屬性進(jìn)行再修改,即將Flash插件的屬性由暫?;蛲V剐薷臑椴シ?這樣Flash插件就可以繼續(xù)播放對(duì)應(yīng)的Flash內(nèi)容。若在步驟S301中通過攔截定時(shí)消息阻止Flash插件播放Flash內(nèi)容,本步驟則取消攔截該定時(shí)消息,使Flash插件繼續(xù)播放對(duì)應(yīng)的Flash內(nèi)容。根據(jù)本實(shí)施例提供的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件之后,通過攔截線程消息循環(huán)中的定時(shí)消息或?qū)lash插件的屬性進(jìn)行修改,阻止Flash插件播放Flash內(nèi)容;在用戶發(fā)起播放Flash的請(qǐng)求后,通過取消攔截線程消息循環(huán)中的定時(shí)消息或?qū)lash插件的屬性進(jìn)行再修改,使Flash插件繼續(xù)播放Flash內(nèi)容,由此實(shí)現(xiàn)了 Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。與現(xiàn)有技術(shù)相比,避免了不必要的插件播放造成用戶資源的浪費(fèi),節(jié)省了電力、帶寬和系統(tǒng)資源。同時(shí),在用戶有需要重新要求播放Flash內(nèi)容時(shí),無需刷新頁(yè)面,實(shí)現(xiàn)了 Flash內(nèi)容的即點(diǎn)即播。而且,本方法在阻止Flash插件播放Flash內(nèi)容時(shí),已經(jīng)創(chuàng)建了 Flash插件,在用戶再發(fā)起播放Flash的請(qǐng)求后,不需要再創(chuàng)建Flash插件,可以直接啟動(dòng)播放,響應(yīng)時(shí)間較短。
圖4示出了根據(jù)本發(fā)明第四個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法400的流程圖。與上述第三個(gè)實(shí)施例不同的是,本實(shí)施例是在頁(yè)面進(jìn)程中創(chuàng)建代理對(duì)象,而在獨(dú)立進(jìn)程中繼續(xù)創(chuàng)建活動(dòng)對(duì)象,使得真實(shí)的Flash插件與頁(yè)面進(jìn)程分離。如圖4所示,方法400始于步驟S401,截獲瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件活動(dòng)對(duì)象的操作,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件代理對(duì)象替換實(shí)際要?jiǎng)?chuàng)建的Flash插件活動(dòng)對(duì)象,該Flash插件代理對(duì)象在頁(yè)面進(jìn)程中運(yùn)行。具體來說,在頁(yè)面中有Flash插件的情況下,在頁(yè)面進(jìn)程準(zhǔn)備創(chuàng)建Flash插件時(shí),攔截CoGetClassObject,創(chuàng)建Flash插件代理對(duì)象,該Flash插件代理對(duì)象包括一系列接口,包括IUnknown指針將會(huì)調(diào)用的很多標(biāo)準(zhǔn)接口,例如IOleObject、IViewObject 等。然后在調(diào)用 IClassFactory 的 CreateInstance 時(shí),將所創(chuàng)建的 Flash 插件代理對(duì)象返回給頁(yè)面進(jìn)程的IUnknown指針。隨后,方法400進(jìn)入步驟S402,其中創(chuàng)建獨(dú)立于頁(yè)面進(jìn)程的獨(dú)立進(jìn)程,在該獨(dú)立進(jìn)程中,倉(cāng)Il建Flash插件活動(dòng)對(duì)象,這里的Flash插件活動(dòng)對(duì)象才是真正的Flash插件。具體地,在頁(yè)面進(jìn)程激活Flash插件代理對(duì)象時(shí),提取出該Flash插件的屬性、URL、大小等相關(guān)信息,然后創(chuàng)建一個(gè)獨(dú)立進(jìn)程。具體來說,創(chuàng)建一個(gè)文件(document),在其中插入一個(gè)對(duì)象(object),該獨(dú)立進(jìn)程調(diào)用CoGetClassObject,攔截該CoGetClassObject,創(chuàng)建一個(gè)Flash插件活動(dòng)對(duì)象。該Flash插件活動(dòng)對(duì)象包括一系列的接口,包括IUnknown指針將會(huì)調(diào)用的很多標(biāo)準(zhǔn)接口,例如IOleObject、IViewObject等。然后在調(diào)用IClassFactory的CreateInstance時(shí),將所創(chuàng)建的Flash插件活動(dòng)對(duì)象返回給獨(dú)立進(jìn)程的IUnknown指針。接著,在Flash插件代理對(duì)象和Flash插件活動(dòng)對(duì)象中分別創(chuàng)建與插件對(duì)象關(guān)聯(lián)的窗口,用于使Flash插件代理對(duì)象和Flash插件活動(dòng)對(duì)象進(jìn)行通信。通過這兩個(gè)窗口,兩個(gè)對(duì)象可以針對(duì)Flash的大小、焦點(diǎn)、刷新、腳本以及其它信息進(jìn)行交互。隨后,方法400進(jìn)入步驟S403,其中通過攔截線程消息循環(huán)中的定時(shí)消息或通過對(duì)Flash插件活動(dòng)對(duì)象的屬性進(jìn)行修改,阻止執(zhí)行Flash插件活動(dòng)對(duì)象實(shí)現(xiàn)的功能,即阻止Flash插件播放對(duì)應(yīng)的Flash內(nèi)容。本步驟的相關(guān)內(nèi)容與實(shí)施例三類似,不同之處在于本步驟是在獨(dú)立進(jìn)程中執(zhí)行的,而實(shí)施例三的相應(yīng)步驟是在頁(yè)面進(jìn)程中執(zhí)行的??蛇x地,在步驟S403之后,方法400進(jìn)入步驟S404,其中調(diào)用自定義的繪制函數(shù)繪制自定義界面,在瀏覽器的指定位置顯示該自定義界面。在經(jīng)過步驟S403阻止播放Flash內(nèi)容后,在瀏覽器的原本該顯示Flash內(nèi)容的指定位置就會(huì)出現(xiàn)停止播放的界面,本方法可以將該停止播放的界面替換為自定義界面,如空屏、自定義圖片或自定義Flash等。具體可以采用以下兩種方法I)在獨(dú)立進(jìn)程中攔截Flash插件活動(dòng)對(duì)象的繪制函數(shù),調(diào)用自定義的繪制函數(shù)繪制自定義界面,通過Flash插件代理對(duì)象與獨(dú)立進(jìn)程通信調(diào)用Flash插件活動(dòng)對(duì)象,在瀏覽器的指定位置顯示自定義界面。具體來說,在獨(dú)立進(jìn)程中攔截Flash插件活動(dòng)對(duì)象的繪制函數(shù),該繪制函數(shù)用于繪制停止播放的界面,調(diào)用自定義的繪制函數(shù)繪制自定義界面,通過Flash插件代理對(duì)象與獨(dú)立進(jìn)程通信調(diào)用Flash插件活動(dòng)對(duì)象,將該自定義界面通過創(chuàng)建的窗口發(fā)送給Flash插件代理對(duì)象,在指定位置顯示該自定義界面。2)在頁(yè)面進(jìn)程中攔截Flash插件代理對(duì)象與獨(dú)立進(jìn)程通信調(diào)用Flash插件活動(dòng)對(duì)象的動(dòng)作,調(diào)用自定義的繪制函數(shù)繪制自定義界面,在瀏覽器的指定位置顯示自定義界面。具體來說,在獨(dú)立進(jìn)程中通過調(diào)用Flash插件活動(dòng)對(duì)象的繪制函數(shù)繪制停止播放的界面,通過Flash插件代理對(duì)象與獨(dú)立進(jìn)程通信調(diào)用Flash插件活動(dòng)對(duì)象,可將該停止播放的界面通過創(chuàng)建的窗口發(fā)送給Flash插件代理對(duì)象,此時(shí)在頁(yè)面進(jìn)程中攔截該動(dòng)作,調(diào)用自定義的繪制函數(shù)繪制自定義界面,在指定位置顯示該自定義界面。隨后,方法400進(jìn)入步驟S405,其中根據(jù)用戶發(fā)起的執(zhí)行Flash插件實(shí)現(xiàn)的功能的請(qǐng)求,通過取消攔截線程循環(huán)中的定時(shí)消息或者通過對(duì)Flash插件的屬性進(jìn)行再修改,繼續(xù)執(zhí)行Flash插件實(shí)現(xiàn)的功能,即繼續(xù)播放Flash內(nèi)容。其中繼續(xù)執(zhí)行Flash插件實(shí)現(xiàn)的功能是通過Flash插件代理對(duì)象與獨(dú)立進(jìn)程通信調(diào)用Flash插件活動(dòng)對(duì)象,和/或,F(xiàn)lash插件代理對(duì)象與獨(dú)立進(jìn)程通信被Flash插件活動(dòng)對(duì)象調(diào)用而實(shí)現(xiàn)的。而取消攔截線程循環(huán)中的定時(shí)消息或者通過對(duì)Flash插件的屬性進(jìn)行再修改是在獨(dú)立進(jìn)程中進(jìn)行的。根據(jù)本實(shí)施例提供的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件代理對(duì)象,在獨(dú)立進(jìn)程中創(chuàng)建真正的Flash插件,并在真正的Flash插件創(chuàng)建完成后,通過攔截線程消息循環(huán)中的定時(shí)消息或?qū)lash插件的屬性進(jìn)行修改,阻止Flash插件播放Flash內(nèi)容;在用戶發(fā)起播放Flash的請(qǐng)求后,通過取消攔截線程消息循環(huán)中的定時(shí)消息或?qū)lash插件的屬性進(jìn)行再修改,使Flash插件繼續(xù)播放Flash內(nèi)容,由此實(shí)現(xiàn)了Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。與現(xiàn)有技術(shù)相比,避免了不必要的插件播放造成用戶資源的浪費(fèi),節(jié)省了電力、帶寬和系統(tǒng)資源。同時(shí),在用戶有需要重新要求播放Flash內(nèi)容時(shí),無需刷新頁(yè)面,實(shí)現(xiàn)了 Flash內(nèi)容的即點(diǎn)即播。而且,本方法在阻止Flash插件播放Flash內(nèi)容時(shí),已經(jīng)創(chuàng)建了 Flash插件,在用戶再發(fā)起播放Flash的請(qǐng)求后,不需要再創(chuàng)建Flash插件,可以直接啟動(dòng)播放,響應(yīng)時(shí)間較短。進(jìn)一步的,在本方法中,通過在頁(yè)面進(jìn)程中運(yùn)行代理對(duì)象,而在獨(dú)立進(jìn)程中運(yùn)行活動(dòng)對(duì)象,使得真正的Flash插件與頁(yè)面進(jìn)程分離,從而使Flash插件出現(xiàn)問題時(shí)不會(huì)影響頁(yè)面進(jìn)程,提高了瀏覽器的穩(wěn)定性,尤其是當(dāng)Flash插件出現(xiàn)病毒等安全性問題時(shí),也不會(huì)對(duì)頁(yè)面進(jìn)程產(chǎn)生影響,提高了瀏覽器的安全性;同時(shí),頁(yè)面進(jìn)程出現(xiàn)問題不會(huì)影響Flash插件的正常運(yùn)行,提高了插件的穩(wěn)定性。圖5示出了根據(jù)本發(fā)明第五個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置的結(jié)構(gòu)框圖。如圖5所示,該裝置包括阻止模塊510、第一創(chuàng)建模塊520和執(zhí)行模塊530。進(jìn)一步的,阻止模塊510、第一創(chuàng)建模塊520和執(zhí)行模塊530都是頁(yè)面進(jìn)程模塊500的子模塊。其中,阻止模塊510適于在瀏覽器創(chuàng)建活動(dòng)對(duì)象之前,在頁(yè)面進(jìn)程中阻止創(chuàng)建活動(dòng)對(duì)象。第一創(chuàng)建模塊520根據(jù)用戶發(fā)起的執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求,繼續(xù)在頁(yè)面進(jìn)程中創(chuàng)建活動(dòng)對(duì)象。執(zhí)行模塊530適于在第一創(chuàng)建模塊520創(chuàng)建活動(dòng)對(duì)象之后,執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能。以Flash插件為例,在頁(yè)面創(chuàng)建Flash插件之前,頁(yè)面進(jìn)程通過CLSIDFromProgID方法獲取Flash插件的CLSID或者ProgID,判斷其是否為Flash插件的CLSID或ProgID,若是阻止模塊510阻止第一創(chuàng)建模塊520的動(dòng)作,使其停止執(zhí)行查詢注冊(cè)表,從而阻止創(chuàng)建Flash插件。在頁(yè)面進(jìn)程收到用戶點(diǎn)擊播放Flash的請(qǐng)求后,阻止模塊510解除阻止,第一創(chuàng)建模塊520根據(jù)Flash插件的CLSID或ProgID繼續(xù)執(zhí)行查詢注冊(cè)表的操作,用以查看系統(tǒng)是否已安裝該插件,若查看已安裝該插件則進(jìn)一步創(chuàng)建該Flash插件。在Flash插件創(chuàng)建完成后,執(zhí)行模塊530按照默認(rèn)的屬性就會(huì)播放對(duì)應(yīng)的Flash內(nèi)容,由此實(shí)現(xiàn)了 Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。根據(jù)本實(shí)施例提供的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件之前,阻止模塊默認(rèn)阻止創(chuàng)建該Flash插件;在用戶發(fā)起播放Flash的請(qǐng)求后,第一創(chuàng)建模塊繼續(xù)創(chuàng)建Flash插件,并在Flash插件創(chuàng)建完成后,執(zhí)行模塊播放對(duì)應(yīng)的Flash內(nèi)容,由此實(shí)現(xiàn)了 Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。與現(xiàn)有技術(shù)相比,避免了不必要的插件播放造成用戶資源的浪費(fèi),節(jié)省了電力、帶寬和系統(tǒng)資源。同時(shí),在用戶有需要重新要求播放Flash內(nèi)容時(shí),無需刷新頁(yè)面,實(shí)現(xiàn)了 Flash內(nèi)容的即點(diǎn)即播。而且,本實(shí)施例提供的裝置在加載頁(yè)面時(shí),默認(rèn)阻止創(chuàng)建Flash插件,將有限的資源用于加載頁(yè)面,提升了頁(yè)面的加載速度。圖6示出了根據(jù)本發(fā)明第六個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置的結(jié)構(gòu)框圖。如圖6所示,該裝置包括頁(yè)面進(jìn)程模塊610和獨(dú)立進(jìn)程模塊620,以及分別在頁(yè)面進(jìn)程模塊610和獨(dú)立進(jìn)程模塊620中創(chuàng)建的通信窗口 630。其中頁(yè)面進(jìn)程模塊610包括子模塊阻止模塊611和第二創(chuàng)建模塊612 ;獨(dú)立進(jìn)程模塊620包括子模塊第一創(chuàng)建模塊621和執(zhí)行模塊 622。阻止模塊611適于在瀏覽器創(chuàng)建活動(dòng)對(duì)象之前,在頁(yè)面進(jìn)程中阻止創(chuàng)建活動(dòng)對(duì)象。第二創(chuàng)建模塊612適于根據(jù)用戶發(fā)起的執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求,截獲瀏覽器的頁(yè)面進(jìn)程加載活動(dòng)對(duì)象的操作,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建代理對(duì)象替換實(shí)際要?jiǎng)?chuàng)建的活動(dòng)對(duì)象,代理對(duì)象在頁(yè)面進(jìn)程中運(yùn)行。第一創(chuàng)建模塊621適于在獨(dú)立于瀏覽器的頁(yè)面進(jìn)程的獨(dú)立進(jìn)程中,創(chuàng)建活動(dòng)對(duì)象。執(zhí)行模塊622通過代理對(duì)象經(jīng)由通信窗口 630與獨(dú)立進(jìn)程通信調(diào)用活動(dòng)對(duì)象,和/或,代理對(duì)象經(jīng)由通信窗口 630與獨(dú)立進(jìn)程通信被活動(dòng)對(duì)象調(diào)用,執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能。以Flash插件為例,在頁(yè)面創(chuàng)建Flash插件之前,頁(yè)面進(jìn)程通過CLSIDFromProgID方法獲取Flash插件的CLSID或者ProgID,判斷其是否為Flash插件的CLSID或ProgID,若是阻止模塊611阻止第二創(chuàng)建模塊612的動(dòng)作,使其停止執(zhí)行查詢注冊(cè)表,從而阻止創(chuàng)建Flash插件。在頁(yè)面進(jìn)程收到用戶點(diǎn)擊播放Flash的請(qǐng)求后,阻止模塊611解除阻止,第二創(chuàng)建模塊612根據(jù)Flash插件的CLSID或ProgID繼續(xù)執(zhí)行查詢注冊(cè)表的操作,用以查看系統(tǒng)是否已安裝該插件,若查看已安裝該插件則進(jìn)一步創(chuàng)建該Flash插件。這里,在頁(yè)面進(jìn)程準(zhǔn)備進(jìn)一步創(chuàng)建Flash插件時(shí),第二創(chuàng)建模塊612攔截CoGetClassOb ject,創(chuàng)建Flash插件代理對(duì)象,該Flash插件代理對(duì)象包括一系列接口,包括IUnknown指針將會(huì)調(diào)用的很多標(biāo)準(zhǔn)接口,例如 IOleOb ject、IViewOb ject 等。然后在調(diào)用 IClassFactory 的 CreateInstance時(shí),將所創(chuàng)建的Flash插件代理對(duì)象返回給頁(yè)面進(jìn)程的IUnknown指針。在頁(yè)面進(jìn)程激活Flash插件代理對(duì)象時(shí),提取出該Flash插件的屬性、URL、大小等相關(guān)信息,然后由獨(dú)立進(jìn)程模塊620創(chuàng)建一個(gè)獨(dú)立進(jìn)程。在該獨(dú)立進(jìn)程調(diào)用CoGetClassObject時(shí),第一創(chuàng)建模塊621攔截該CoGetClassObject,創(chuàng)建一個(gè)Flash插件活動(dòng)對(duì)象。該Flash插件活動(dòng)對(duì)象包括一系列的接口,包括IUnknown指針將會(huì)調(diào)用的很多標(biāo)準(zhǔn)接口,例如IOleOb ject、IViewOb ject等。然后在調(diào)用IClassFactory的CreateInstance時(shí),將所創(chuàng)建的Flash插件活動(dòng)對(duì)象返回給獨(dú)立進(jìn)程的IUnknown指針。在Flash插件活動(dòng)對(duì)象創(chuàng)建完成后,根據(jù)用戶點(diǎn)擊播放Flash的請(qǐng)求,執(zhí)行模塊622通過Flash插件代理對(duì)象與獨(dú)立進(jìn)程通信調(diào)用Flash插件活動(dòng)對(duì)象,使Flash插件活動(dòng)對(duì)象播放對(duì)應(yīng)的Flash內(nèi)容,由此實(shí)現(xiàn)了 Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。根據(jù)本實(shí)施例提供的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件之前,阻止模塊默認(rèn)阻止創(chuàng)建該Flash插件;在用戶發(fā)起播放Flash的請(qǐng)求后,第一創(chuàng)建模塊在獨(dú)立進(jìn)程中創(chuàng)建真正的Flash插件,并在真正的Flash插件創(chuàng)建完成后,執(zhí)行模塊通過調(diào)用真正的Flash插件播放對(duì)應(yīng)的Flash內(nèi)容,由此實(shí)現(xiàn)了 Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。與現(xiàn)有技術(shù)相比,避免了不必要的插件播放造成用戶資源的浪費(fèi),節(jié)省了電力、帶寬和系統(tǒng)資源。同時(shí),在用戶有需要重新要求播放Flash內(nèi)容時(shí),無需刷新頁(yè)面,實(shí)現(xiàn)了 Flash內(nèi)容的即點(diǎn)即播。而且,本實(shí)施例提供的裝置在加載頁(yè)面時(shí),默認(rèn)阻止創(chuàng)建Flash插件,將有限的資源用于加載頁(yè)面,提升了頁(yè)面的加載速度。進(jìn)一步的,在本裝置中,通過在頁(yè)面進(jìn)程中運(yùn)行代理對(duì)象,而在獨(dú)立進(jìn)程中運(yùn)行活動(dòng)對(duì)象,使得真正的Flash插件與頁(yè)面進(jìn)程分離,從而使Flash插件出現(xiàn)問題時(shí)不會(huì)影響頁(yè)面進(jìn)程,提高了瀏覽器的穩(wěn)定性,尤其是當(dāng)Flash插件出現(xiàn)病毒等安全性問題時(shí),也不會(huì)對(duì)頁(yè)面進(jìn)程產(chǎn)生影響,提高了瀏覽器的安全性;同時(shí),頁(yè)面進(jìn)程出現(xiàn)問題不會(huì)影響Flash插件的正常運(yùn)行,提高了插件的穩(wěn)定性。圖7示出了根據(jù)本發(fā)明第七個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置的結(jié)構(gòu)框圖。如圖7所示,該裝置包括阻止模塊710和執(zhí)行模塊720。進(jìn)一步的,阻止模塊710和執(zhí)行模塊720是頁(yè)面進(jìn)程模塊700的子模塊。其中,阻止模塊710適于在瀏覽器創(chuàng)建活動(dòng)對(duì)象之后,通過攔截線程消息循環(huán)中的定時(shí)消息或者通過對(duì)活動(dòng)對(duì)象的屬性進(jìn)行修改,阻止執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能。執(zhí)行模塊720適于根據(jù)用戶發(fā)起的執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求,通過取消攔截線程消息循環(huán)中的定時(shí)消息或者通過對(duì)活動(dòng)對(duì)象的屬性進(jìn)行再修改,繼續(xù)執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能。以Flash插件為例,在頁(yè)面中有Flash插件的情況下,瀏覽器的頁(yè)面進(jìn)程通過CLSIDFromProgID方法獲取Flash插件的CLSID或者ProgID,隨后頁(yè)面進(jìn)程根據(jù)Flash插件的CLSID或ProgID查詢注冊(cè)表,用以查看系統(tǒng)是否已安裝該插件,若查看已安裝該插件則進(jìn)一步創(chuàng)建該Flash插件。頁(yè)面進(jìn)程通過調(diào)用CoGetClassObject得到Flash插件的IUnknown指針,根據(jù)IUnknown指針調(diào)用標(biāo)準(zhǔn)接口進(jìn)行相關(guān)操作,由此完成Flash插件的創(chuàng)建。在得到IUnknown指針的情況下,阻止模塊710可以根據(jù)IUnkown指針查找到記錄Flash插件屬性的函數(shù),調(diào)用該函數(shù)就可對(duì)Flash插件的屬性進(jìn)行修改,如將Flash插件的默認(rèn)屬性由播放修改為暫?;蛲V?,就達(dá)到了阻止Flash插件播放Flash內(nèi)容的目的。阻止模塊710也可以攔截線程消息循環(huán)中的定時(shí)消息,如0x401消息,阻止Flash插件播放Flash內(nèi)容。在用戶發(fā)起的執(zhí)行Flash插件實(shí)現(xiàn)的功能的請(qǐng)求后,執(zhí)行模塊720可以通過對(duì)Flash插件的屬性進(jìn)行再修改,如將Flash插件的屬性由暫?;蛲V剐薷臑椴シ?,這樣Flash插件就可以繼續(xù)播放對(duì)應(yīng)的Flash內(nèi)容。執(zhí)行模塊720也可以通過取消攔截該定時(shí)消息,使Flash插件繼續(xù)播放對(duì)應(yīng)的Flash內(nèi)容??蛇x的,該裝置還可以包括繪制模塊730,繪制模塊730也是頁(yè)面進(jìn)程模塊700的子模塊。繪制模塊730適于攔截活動(dòng)對(duì)象的繪制函數(shù),調(diào)用自定義的繪制函數(shù)繪制自定義界面,在瀏覽器的指定位置顯示自定義界面。通過繪制模塊730可以將該停止播放的界面替換為自定義界面,如空屏、自定義圖片或自定義Flash等。根據(jù)本實(shí)施例提供的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件之后,阻止模塊通過攔截線程消息循環(huán)中的定時(shí)消息或?qū)lash插件的屬性進(jìn)行修改,阻止Flash插件播放Flash內(nèi)容;在用戶發(fā)起播放Flash的請(qǐng)求后,執(zhí)行模塊通過取消攔截線程消息循環(huán)中的定時(shí)消息或?qū)lash插件的屬性進(jìn)行再修改,使Flash插件繼續(xù)播放Flash內(nèi)容,由此實(shí)現(xiàn)了 Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。與現(xiàn)有技術(shù)相t匕,避免了不必要的插件播放造成用戶資源的浪費(fèi),節(jié)省了電力、帶寬和系統(tǒng)資源。同時(shí),在用戶有需要重新要求播放Flash內(nèi)容時(shí),無需刷新頁(yè)面,實(shí)現(xiàn)了 Flash內(nèi)容的即點(diǎn)即播。而且,本裝置在阻止Flash插件播放Flash內(nèi)容時(shí),已經(jīng)創(chuàng)建了 Flash插件,在用戶再發(fā)起播放Flash的請(qǐng)求后,不需要再創(chuàng)建Flash插件,可以直接啟動(dòng)播放,響應(yīng)時(shí)間較短。圖8示出了根據(jù)本發(fā)明第八個(gè)實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置的結(jié)構(gòu)框圖。如圖8所示,該裝置包括頁(yè)面進(jìn)程模塊810和獨(dú)立進(jìn)程模塊820,以及分別在頁(yè)面進(jìn)程模塊810和獨(dú)立進(jìn)程模塊820中創(chuàng)建的通信窗口 830。其中頁(yè)面進(jìn)程模塊810包括子模塊第一創(chuàng)建模塊811 ;獨(dú)立進(jìn)程模塊820包括子模塊第二創(chuàng)建模塊821、阻止模塊822和執(zhí)行模塊823。第一創(chuàng)建模塊811適于截獲瀏覽器的頁(yè)面進(jìn)程加載活動(dòng)對(duì)象的操作,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建代理對(duì)象替換實(shí)際要?jiǎng)?chuàng)建的活動(dòng)對(duì)象,代理對(duì)象在頁(yè)面進(jìn)程中運(yùn)行。第二創(chuàng)建模塊821適于在獨(dú)立于頁(yè)面進(jìn)程的獨(dú)立進(jìn)程中創(chuàng)建活動(dòng)對(duì)象。阻止模塊822適于在瀏覽器創(chuàng)建活動(dòng)對(duì)象之后,通過攔截線程消息循環(huán)中的定時(shí)消息或者通過對(duì)活動(dòng)對(duì)象的屬性進(jìn)行修改,阻止執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能。執(zhí)行模塊823適于根據(jù)用戶發(fā)起的執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求,通過取消攔截線程消息循環(huán)中的定時(shí)消息或者通過對(duì)活動(dòng)對(duì)象的屬性進(jìn)行再修改,繼續(xù)執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能。執(zhí)行模塊823進(jìn)一步適于通過代理對(duì)象經(jīng)由通信窗口 830與獨(dú)立進(jìn)程通信調(diào)用活動(dòng)對(duì)象,和/或,代理對(duì)象經(jīng)由通信窗口 830與獨(dú)立進(jìn)程通信被活動(dòng)對(duì)象調(diào)用,繼續(xù)執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能。以Flash插件為例,在頁(yè)面中有Flash插件的情況下,在第一創(chuàng)建模塊811準(zhǔn)備創(chuàng)建Flash插件時(shí),攔截CoGetClassObject,創(chuàng)建Flash插件代理對(duì)象,該Flash插件代理對(duì)象包括一系列接口,包括IUnknown指針將會(huì)調(diào)用的很多標(biāo)準(zhǔn)接口,例如IOleObject、IViewObject 等。然后在調(diào)用 IClassFactory 的 CreateInstance 時(shí),將所創(chuàng)建的 Flash 插件代理對(duì)象返回給頁(yè)面進(jìn)程的IUnknown指針。在頁(yè)面進(jìn)程激活Flash插件代理對(duì)象時(shí),提取出該Flash插件的屬性、URL、大小等相關(guān)信息,然后由獨(dú)立進(jìn)程模塊820創(chuàng)建一個(gè)獨(dú)立進(jìn)程。在獨(dú)立進(jìn)程調(diào)用CoGetClassOb ject,第二創(chuàng)建模塊821攔截該CoGetClassOb ject,創(chuàng)建一個(gè)Flash插件活動(dòng)對(duì)象。該Flash插件活動(dòng)對(duì)象包括一系列的接口,包括IUnknown指針將會(huì)調(diào)用的很多標(biāo)準(zhǔn)接口,例如I01e0bject、IView0bject等。然后在調(diào)用IClassFactory的CreateInstance時(shí),將所創(chuàng)建的Flash插件活動(dòng)對(duì)象返回給獨(dú)立進(jìn)程的IUnknown指針。阻止模塊822通過攔截線程消息循環(huán)中的定時(shí)消息(如0x401消息)或通過對(duì)Flash插件活動(dòng)對(duì)象的屬性進(jìn)行修改,阻止執(zhí)行Flash插件活動(dòng)對(duì)象實(shí)現(xiàn)的功能,即阻止Flash插件播放對(duì)應(yīng)的Flash內(nèi)容。進(jìn)一步的,阻止模塊822是根據(jù)IUnknown指針查找到記錄Flash插件屬性的函數(shù),調(diào)用該函數(shù)就可對(duì)Flash插件的屬性進(jìn)行修改。在用戶發(fā)起的執(zhí)行Flash插件實(shí)現(xiàn)的功能的請(qǐng)求之后,執(zhí)行模塊823通過取消攔截線程循環(huán)中的定時(shí)消息或者通過對(duì)Flash插件的屬性進(jìn)行再修改,繼續(xù)執(zhí)行Flash插件實(shí)現(xiàn)的功能,即繼續(xù)播放Flash內(nèi)容。可選的,獨(dú)立進(jìn)程模塊820還可以包括繪制模塊824,適于在獨(dú)立進(jìn)程中攔截活動(dòng)對(duì)象的繪制函數(shù),調(diào)用自定義的繪制函數(shù)繪制自定義界面。頁(yè)面進(jìn)程模塊810包括顯示模塊812,適于通過代理對(duì)象與獨(dú)立進(jìn)程通信調(diào)用活動(dòng)對(duì)象,在瀏覽器的指定位置顯示自定義界面。作為另一種可替換的實(shí)現(xiàn)方式,頁(yè)面進(jìn)程模塊包括繪制模塊,適于在頁(yè)面進(jìn)程中攔截代理對(duì)象與獨(dú)立進(jìn)程通信調(diào)用活動(dòng)對(duì)象的動(dòng)作,調(diào)用自定義的繪制函數(shù)繪制自定義界面,在瀏覽器的指定位置顯示自定義界面。根據(jù)本實(shí)施例提供的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建Flash插件代理對(duì)象,在獨(dú)立進(jìn)程中創(chuàng)建真正的Flash插件,并在真正的Flash插件創(chuàng)建完成后,阻止模塊通過攔截線程消息循環(huán)中的定時(shí)消息或?qū)lash插件的屬性進(jìn)行修改,阻止Flash插件播放Flash內(nèi)容;在用戶發(fā)起播放Flash的請(qǐng)求后,執(zhí)行模塊通過取消攔截線程消息循環(huán)中的定時(shí)消息或?qū)lash插件的屬性進(jìn)行再修改,使Flash插件繼續(xù)播放Flash內(nèi)容,由此實(shí)現(xiàn)了 Flash插件對(duì)應(yīng)的Flash內(nèi)容的即點(diǎn)即播。與現(xiàn)有技術(shù)相比,避免了不必要的插件播放造成用戶資源的浪費(fèi),節(jié)省了電力、帶寬和系統(tǒng)資源。同時(shí),在用戶有需要重新要求播放Flash內(nèi)容時(shí),無需刷新頁(yè)面,實(shí)現(xiàn)了 Flash內(nèi)容的即點(diǎn)即播。而且,本裝置在阻止Flash插件播放Flash內(nèi)容時(shí),已經(jīng)創(chuàng)建了 Flash插件,在用戶再發(fā)起播放Flash的請(qǐng)求后,不需要再創(chuàng)建Flash插件,可以直接啟動(dòng)播放,響應(yīng)時(shí)間較短。進(jìn)一步的,在本裝置中,通過在頁(yè)面進(jìn)程中運(yùn)行代理對(duì)象,而在獨(dú)立進(jìn)程中運(yùn)行活動(dòng)對(duì)象,使得真正的Flash插件與頁(yè)面進(jìn)程分離,從而使Flash插件出現(xiàn)問題時(shí)不會(huì)影響頁(yè)面進(jìn)程,提高了瀏覽器的穩(wěn)定性,尤其是當(dāng)Flash插件出現(xiàn)病毒等安全性問題時(shí),也不會(huì)對(duì)頁(yè)面進(jìn)程產(chǎn)生影響,提高了瀏覽器的安全性;同時(shí),頁(yè)面進(jìn)程出現(xiàn)問題不會(huì)影響Flash插件的正常運(yùn)行,提高了插件的穩(wěn)定性。本發(fā)明還提供了一種瀏覽器,包括上述實(shí)施例五至實(shí)施例八中所描述的任一瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置和瀏覽器中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
權(quán)利要求
1.一種瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法,包括: 在瀏覽器創(chuàng)建活動(dòng)對(duì)象之前,阻止創(chuàng)建所述活動(dòng)對(duì)象; 根據(jù)用戶發(fā)起的執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求,繼續(xù)創(chuàng)建所述活動(dòng)對(duì)象,而后執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能。
2.根據(jù)權(quán)利要求1所述的方法,所述在瀏覽器創(chuàng)建活動(dòng)對(duì)象之前,阻止創(chuàng)建所述活動(dòng)對(duì)象的步驟包括:在瀏覽器的頁(yè)面進(jìn)程中阻止創(chuàng)建活動(dòng)對(duì)象。
3.根據(jù)權(quán)利要求2所述的方法,所述根據(jù)用戶發(fā)起的執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求,繼續(xù)創(chuàng)建所述活動(dòng)對(duì)象,而后執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能的步驟包括: 截獲瀏覽器的頁(yè)面進(jìn)程創(chuàng)建活動(dòng)對(duì)象的操作,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建代理對(duì)象替換實(shí)際要?jiǎng)?chuàng)建的活動(dòng)對(duì)象,所述代理對(duì)象在頁(yè)面進(jìn)程中運(yùn)行; 在獨(dú)立于所述瀏覽器的頁(yè)面進(jìn)程的獨(dú)立進(jìn)程中,創(chuàng)建所述活動(dòng)對(duì)象; 通過代理對(duì)象與獨(dú)立進(jìn)程通信調(diào)用活動(dòng)對(duì)象,和/或,代理對(duì)象與獨(dú)立進(jìn)程通信被活動(dòng)對(duì)象調(diào)用,執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能。
4.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,所述阻止創(chuàng)建所述活動(dòng)對(duì)象的步驟包括:獲取所述活動(dòng)對(duì)象的類標(biāo)識(shí),停止執(zhí)行根據(jù)所述活動(dòng)對(duì)象的類標(biāo)識(shí)查詢注冊(cè)表的操作。
5.根據(jù)權(quán)利要求4所述的方法,所述繼續(xù)創(chuàng)建所述活動(dòng)對(duì)象的步驟包括:根據(jù)所述活動(dòng)對(duì)象的類標(biāo)識(shí),繼續(xù)執(zhí)行查詢注冊(cè)表的操作。
6.一種瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置,包括: 阻止模塊,適于在瀏覽 器創(chuàng)建活動(dòng)對(duì)象之前,阻止創(chuàng)建所述活動(dòng)對(duì)象; 第一創(chuàng)建模塊,適于根據(jù)用戶發(fā)起的執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求,繼續(xù)創(chuàng)建所述活動(dòng)對(duì)象; 執(zhí)行模塊,適于在所述第一創(chuàng)建模塊創(chuàng)建所述活動(dòng)對(duì)象之后,執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能。
7.根據(jù)權(quán)利要求6所述的裝置,所述裝置包括頁(yè)面進(jìn)程模塊,所述阻止模塊、第一創(chuàng)建模塊和執(zhí)行模塊都是所述頁(yè)面進(jìn)程模塊的子模塊; 所述阻止模塊具體適于在頁(yè)面進(jìn)程中阻止創(chuàng)建活動(dòng)對(duì)象。
8.根據(jù)權(quán)利要求6所述的裝置,所述裝置包括頁(yè)面進(jìn)程模塊和獨(dú)立進(jìn)程模塊;所述阻止模塊是所述頁(yè)面進(jìn)程模塊的子模塊,所述第一創(chuàng)建模塊和執(zhí)行模塊是所述獨(dú)立進(jìn)程模塊的子模塊; 所述頁(yè)面進(jìn)程模塊還包括:第二創(chuàng)建模塊,適于根據(jù)用戶發(fā)起的執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求,截獲瀏覽器的頁(yè)面進(jìn)程加載活動(dòng)對(duì)象的操作,在瀏覽器的頁(yè)面進(jìn)程創(chuàng)建代理對(duì)象替換實(shí)際要?jiǎng)?chuàng)建的活動(dòng)對(duì)象,所述代理對(duì)象在頁(yè)面進(jìn)程中運(yùn)行; 所述第一創(chuàng)建模塊具體適于在獨(dú)立于所述瀏覽器的頁(yè)面進(jìn)程的獨(dú)立進(jìn)程中,創(chuàng)建所述活動(dòng)對(duì)象; 所述裝置還包括分別在所述頁(yè)面進(jìn)程模塊和所述獨(dú)立進(jìn)程模塊中創(chuàng)建的通信窗口,所述執(zhí)行模塊具體適于通過代理對(duì)象經(jīng)由所述通信窗口與獨(dú)立進(jìn)程通信調(diào)用活動(dòng)對(duì)象,和/或,代理對(duì)象經(jīng)由所述通信窗口與獨(dú)立進(jìn)程通信被活動(dòng)對(duì)象調(diào)用,執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能。
9.根據(jù)權(quán)利要求6至8任一項(xiàng)所述的裝置,所述阻止模塊具體適于獲取所述活動(dòng)對(duì)象的類標(biāo)識(shí),停止執(zhí)行根據(jù)所述活動(dòng)對(duì)象的類標(biāo)識(shí)查詢注冊(cè)表的操作。
10.根據(jù)權(quán)利要求7所述的裝置,所述第一創(chuàng)建模塊具體適于根據(jù)所述活動(dòng)對(duì)象的類標(biāo)識(shí),繼續(xù)執(zhí)行查詢注冊(cè)表的操作。
11.一種包括權(quán)利要求6至10任一項(xiàng)所述的瀏覽器活動(dòng)對(duì)象的創(chuàng)建裝置的瀏覽器。
全文摘要
本發(fā)明公開了一種瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法、裝置及瀏覽器。其中根據(jù)本發(fā)明的一個(gè)方面提供的瀏覽器活動(dòng)對(duì)象的創(chuàng)建方法包括在瀏覽器創(chuàng)建活動(dòng)對(duì)象之前,阻止創(chuàng)建所述活動(dòng)對(duì)象;根據(jù)用戶發(fā)起的執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能的請(qǐng)求,繼續(xù)創(chuàng)建所述活動(dòng)對(duì)象,而后執(zhí)行所述活動(dòng)對(duì)象實(shí)現(xiàn)的功能。該方法與現(xiàn)有技術(shù)相比,避免了不必要的插件播放造成用戶資源的浪費(fèi),節(jié)省了電力、帶寬和系統(tǒng)資源。同時(shí),在用戶有需要重新要求執(zhí)行活動(dòng)對(duì)象實(shí)現(xiàn)的功能時(shí),無需刷新頁(yè)面,實(shí)現(xiàn)了活動(dòng)對(duì)象實(shí)現(xiàn)的功能的即點(diǎn)即執(zhí)行。
文檔編號(hào)G06F17/30GK103077194SQ201210572420
公開日2013年5月1日 申請(qǐng)日期2012年12月25日 優(yōu)先權(quán)日2012年12月25日
發(fā)明者李錦偉, 賀躍松, 陳志 , 付俁, 任寰 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司