專(zhuān)利名稱(chēng):頁(yè)面元素處理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)應(yīng)用領(lǐng)域,尤其是涉及一種頁(yè)面元素處理方法和裝置。
背景技術(shù):
隨著國(guó)際互聯(lián)網(wǎng)的快速發(fā)展,基于國(guó)際互聯(lián)網(wǎng)的應(yīng)用和信息也呈現(xiàn)出爆發(fā)性的增長(zhǎng)。網(wǎng)絡(luò)瀏覽器為互聯(lián)網(wǎng)用戶(hù)提供了一種訪(fǎng)問(wèn)網(wǎng)絡(luò)信息和使用網(wǎng)絡(luò)應(yīng)用的方式,該方式適用性強(qiáng),越多越多的用戶(hù)已經(jīng)習(xí)慣于通過(guò)網(wǎng)絡(luò)瀏覽器來(lái)獲取各種信息和使用各種應(yīng)用。網(wǎng)絡(luò)信息和應(yīng)用供應(yīng)商提供以諸如HTML (超文本標(biāo)記語(yǔ)言,Hypertext MarkupLanguage)之類(lèi)格式的語(yǔ)言編寫(xiě)的網(wǎng)頁(yè),網(wǎng)絡(luò)瀏覽器在用戶(hù)處呈現(xiàn)這些網(wǎng)頁(yè),從而使得網(wǎng)絡(luò)瀏覽器的用戶(hù)可以獲取相關(guān)信息。隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,由網(wǎng)絡(luò)瀏覽器呈現(xiàn)的內(nèi)容也越來(lái)越豐富,因此網(wǎng)絡(luò)瀏覽器的呈現(xiàn)功能也越來(lái)越強(qiáng)大和重要。目前常見(jiàn)的網(wǎng)頁(yè)瀏覽器有微軟公司的Internet Explorer>Mozilia Firefox、谷哥欠公司的 Chrome、0pera 以及蘋(píng)果公司的 Safari
坐坐寸寸o在相關(guān)技術(shù)中,網(wǎng)絡(luò)瀏覽器利用渲染引擎(Rendering Engine)來(lái)解釋網(wǎng)頁(yè)中的內(nèi)容(如HTML、JavaScript)并渲染(顯示)網(wǎng)頁(yè)。渲染引擎決定了瀏覽器如何顯示網(wǎng)頁(yè)的內(nèi)容以及頁(yè)面的格式信息。不同的渲染引擎對(duì)網(wǎng)頁(yè)編寫(xiě)語(yǔ)法的解釋也有不同,因此同一網(wǎng)頁(yè)在不同渲染引擎的瀏覽器里的渲染(顯示)效果也可能不同。目前網(wǎng)頁(yè)瀏覽器的渲染引擎通過(guò)將HTML中的各個(gè)元素以及js代碼轉(zhuǎn)換成DOM模型來(lái)進(jìn)行渲染。在進(jìn)行轉(zhuǎn)換時(shí),整個(gè)HTML文檔被構(gòu)建DOM樹(shù),HTML中的各元素被轉(zhuǎn)換成DOM樹(shù)中的對(duì)象,而對(duì)象之間的關(guān)系被構(gòu)造為節(jié)點(diǎn)和子節(jié)點(diǎn)之間的關(guān)系來(lái)構(gòu)造,通過(guò)使用有關(guān)對(duì)象的方法,可以對(duì)這些對(duì)象進(jìn)行尋址和操作。DOM模型已經(jīng)具有很多公共的規(guī)范和定義。當(dāng)網(wǎng)頁(yè)瀏覽器處理HTML頁(yè)面時(shí),瀏覽器中的渲染引擎對(duì)HTML頁(yè)面語(yǔ)言進(jìn)行分析,將其處理為DOM模型,隨后利用DOM模型來(lái)構(gòu)造用于在瀏覽器中顯示頁(yè)面的內(nèi)部結(jié)構(gòu)。DOMAPI還向js代碼提供了監(jiān)控或者修改網(wǎng)頁(yè)的接口。渲染引擎引入了基于事件的機(jī)制來(lái)處理DOM對(duì)象。每個(gè)DOM對(duì)象具有相關(guān)聯(lián)的多個(gè)事件,并且這些事件可以被觸發(fā)。例如,渲染引擎分析網(wǎng)頁(yè)中的JS代碼,并且將相應(yīng)JS代碼和事件相關(guān)聯(lián),從而使得到特定事件被觸發(fā)時(shí),執(zhí)行相應(yīng)的JS代碼。然而,在目前的網(wǎng)頁(yè)瀏覽器中,渲染引擎通常僅僅根據(jù)HTML網(wǎng)頁(yè)中的JS代碼來(lái)控制相應(yīng)DOM對(duì)象,因此,用戶(hù)使用瀏覽器時(shí)很難對(duì)DOM對(duì)象,即網(wǎng)頁(yè)中的各個(gè)元素進(jìn)行定制渲染。綜上可知,現(xiàn)在的網(wǎng)絡(luò)瀏覽器在呈現(xiàn)網(wǎng)頁(yè)時(shí),通常根據(jù)網(wǎng)絡(luò)應(yīng)用和信息提供商所要求的方式來(lái)呈現(xiàn)網(wǎng)頁(yè)內(nèi)容,而并未充分考慮用戶(hù)對(duì)頁(yè)面呈現(xiàn)方式的偏好。因此現(xiàn)有的網(wǎng)絡(luò)瀏覽器雖然具有不同的渲染引擎,當(dāng)其呈現(xiàn)效果基本相同,這使得用戶(hù)無(wú)法充分個(gè)性化定制網(wǎng)絡(luò)瀏覽器呈現(xiàn)的內(nèi)容,降低用戶(hù)的感受體驗(yàn)。發(fā)明內(nèi)容
鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上 述問(wèn)題的頁(yè)面元素處理裝置和相應(yīng)的頁(yè)面元素處理方法。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種頁(yè)面元素處理裝置,包括至少一個(gè)DOM對(duì)象 處理器,設(shè)置在瀏覽器側(cè),每個(gè)DOM對(duì)象處理器配置為存儲(chǔ)有特定DOM對(duì)象的定制處理;頁(yè) 面解析器,配置為在瀏覽器側(cè)加載獲取頁(yè)面,并對(duì)獲取頁(yè)面的頁(yè)面元素進(jìn)行解析,將各頁(yè)面 元素轉(zhuǎn)換為DOM對(duì)象;D0M處理器,耦接到頁(yè)面解析器和至少一個(gè)DOM對(duì)象處理器,配置為 調(diào)用設(shè)置的至少一個(gè)DOM對(duì)象處理器,對(duì)轉(zhuǎn)換的DOM對(duì)象中的至少一個(gè)進(jìn)行設(shè)置的定制處 理;樹(shù)生成器,耦接到DOM處理器,配置為利用經(jīng)過(guò)設(shè)置的定制處理的DOM對(duì)象生成最終的 DOM樹(shù),并對(duì)DOM樹(shù)進(jìn)行渲染。
可選地,DOM處理器還配置為在對(duì)象處理注冊(cè)表中查詢(xún)是否存在對(duì)當(dāng)前DOM對(duì)象 進(jìn)行處理的DOM對(duì)象處理器,其中,對(duì)象處理注冊(cè)表中登記有設(shè)置的至少一個(gè)DOM對(duì)象處理 器的登記信息;若是,根據(jù)登記信息查找到對(duì)該DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器,并調(diào)用。
可選地,DOM處理器還配置為當(dāng)瀏覽器中存在對(duì)當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì) 象處理器時(shí),調(diào)用該DOM對(duì)象處理器,對(duì)該DOM對(duì)象進(jìn)行設(shè)置的定制處理;當(dāng)瀏覽器中不存 在為當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器時(shí),對(duì)該DOM對(duì)象進(jìn)行缺省處理。
可選地,每個(gè)DOM對(duì)象處理器存儲(chǔ)有對(duì)特定DOM對(duì)象已經(jīng)加載完成時(shí)觸發(fā)的事件 ContentReady進(jìn)行處理的處理方式。
可選地,每個(gè)DOM對(duì)象處理器還存儲(chǔ)有對(duì)獲取頁(yè)面的HTML全部加載完成時(shí)觸發(fā)的 事件DocumentReady進(jìn)行處理的處理方式。
可選地,DOM處理器設(shè)置在瀏覽器的渲染引擎中。
可選地,DOM處理器配置為利用瀏覽器提供的對(duì)網(wǎng)頁(yè)元素進(jìn)行渲染的接口調(diào)用至 少一個(gè)DOM對(duì)象處理器。
可選地,DOM對(duì)象包括文本框元素;密碼輸入框元素。
依據(jù)本發(fā)明的另一方面,還提供了一種頁(yè)面元素處理方法,在瀏覽器側(cè)設(shè)置至少 一個(gè)DOM對(duì)象處理器,其中每個(gè)DOM對(duì)象處理器存儲(chǔ)有特定DOM對(duì)象的定制處理,該方法 包括在瀏覽器側(cè)加載獲取頁(yè)面,并對(duì)獲取頁(yè)面的頁(yè)面元素進(jìn)行解析,將各頁(yè)面元素轉(zhuǎn)換為 DOM對(duì)象;調(diào)用設(shè)置的至少一個(gè)DOM對(duì)象處理器,對(duì)轉(zhuǎn)換的DOM對(duì)象中的至少一個(gè)進(jìn)行設(shè)置 的定制處理;對(duì)轉(zhuǎn)換的DOM對(duì)象中的至少一個(gè)進(jìn)行設(shè)置的定制處理之后,還包括利用經(jīng)過(guò) 設(shè)置的定制處理的DOM對(duì)象生成最終的DOM樹(shù);對(duì)DOM樹(shù)進(jìn)行渲染。
可選地,調(diào)用設(shè)置的至少一個(gè)DOM對(duì)象處理器,包括在對(duì)象處理注冊(cè)表中查詢(xún)是 否存在對(duì)當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器,其中,對(duì)象處理注冊(cè)表中登記有設(shè)置的 至少一個(gè)DOM對(duì)象處理器的登記信息;若是,根據(jù)登記信息查找到對(duì)該DOM對(duì)象進(jìn)行處理的 DOM對(duì)象處理器,并調(diào)用。
可選地,調(diào)用設(shè)置的至少一個(gè)DOM對(duì)象處理器,對(duì)轉(zhuǎn)換的DOM對(duì)象中的至少一個(gè)進(jìn) 行設(shè)置的定制處理,包括當(dāng)瀏覽器中存在對(duì)當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器時(shí), 調(diào)用該DOM對(duì)象處理器,對(duì)該DOM對(duì)象進(jìn)行設(shè)置的定制處理;當(dāng)瀏覽器中不存在為當(dāng)前DOM 對(duì)象進(jìn)行處理的DOM對(duì)象處理器時(shí),對(duì)該DOM對(duì)象進(jìn)行缺省處理。
可選地,每個(gè)DOM對(duì)象處理器存儲(chǔ)有對(duì)特定DOM對(duì)象已經(jīng)加載完成時(shí)觸發(fā)的事件ContentReady進(jìn)行處理的處理方式??蛇x地,每個(gè)DOM對(duì)象處理器還存儲(chǔ)有對(duì)獲取頁(yè)面的HTML全部加載完成時(shí)觸發(fā)的事件DocumentReady進(jìn)行處理的處理方式??蛇x地,調(diào)用設(shè)置的至少一個(gè)DOM對(duì)象處理器,包括根據(jù)瀏覽器提供的、對(duì)網(wǎng)頁(yè)元素進(jìn)行渲染的接口調(diào)用至少一個(gè)DOM對(duì)象處理器??蛇x地,瀏覽器為IE瀏覽器時(shí),瀏覽器所在的客戶(hù)端在WebBrowser插件設(shè)置第一接口 IElementBehaviorFactory、第 二接口 IElementBehavior 以及第三接 口IDocHostMHandler,其中,第一接口和第二接口用于調(diào)用各DOM對(duì)象處理器,第三接口用于將各DOM對(duì)象處理器注冊(cè)到對(duì)象處理注冊(cè)表中;調(diào)用設(shè)置的至少一個(gè)DOM對(duì)象處理器,包括內(nèi)核引擎根據(jù)瀏覽器所在的客戶(hù)端提供的行為名稱(chēng)BehaviorName,通過(guò)第二接口調(diào)用與第一接口連接的至少一個(gè)DOM對(duì)象處理器;以及內(nèi)核引擎根據(jù)客戶(hù)端提供的頁(yè)面元素標(biāo)識(shí)TAG加載對(duì)應(yīng)的頁(yè)面元素時(shí),調(diào)用元素行為通知方法,通知客戶(hù)端頁(yè)面元素的加載狀態(tài)??蛇x地,內(nèi)核引擎調(diào)用至少一個(gè)DOM對(duì)象處理器,包括內(nèi)核引擎與獲取頁(yè)面提供的第四接口 IElementBehaviorSite關(guān)聯(lián),通過(guò)第四接口確定當(dāng)前DOM對(duì)象是定已有定制處理。可選地,DOM對(duì)象包括文本框元素;密碼輸入框元素。在本發(fā)明實(shí)施例中,對(duì)于每個(gè)DOM對(duì)象,在瀏覽器側(cè)設(shè)置對(duì)其進(jìn)行定制處理的DOM對(duì)象處理器,在頁(yè)面的獲取過(guò)程中,利用DOM處理器調(diào)用選擇的DOM對(duì)象處理器對(duì)DOM對(duì)象進(jìn)行設(shè)置的定制處理。由此可見(jiàn),采用本發(fā)明實(shí)施例提供的頁(yè)面元素處理裝置,能夠分別對(duì)于每個(gè)DOM對(duì)象進(jìn)行處理,其處理的方式是由DOM處理器進(jìn)行選擇調(diào)用,由此呈現(xiàn)的網(wǎng)頁(yè)內(nèi)容能夠?qū)崿F(xiàn)個(gè)性化定制處理,而并非是根據(jù)網(wǎng)絡(luò)應(yīng)用和信息提供商所要求的固定方式,進(jìn)而實(shí)現(xiàn)了用戶(hù)能夠?qū)W(wǎng)絡(luò)瀏覽器呈現(xiàn)的內(nèi)容進(jìn)行個(gè)性化定制的目的,滿(mǎn)足不同的用戶(hù)的偏好,提聞?dòng)脩?hù)的感受:體驗(yàn)。上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過(guò)閱讀下文優(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í)施例的頁(yè)面元素處理裝置的結(jié)構(gòu)示意圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的頁(yè)面元素處理方法的流程圖;以及圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的DOM對(duì)象處理器的查詢(xún)流程圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍 完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
相關(guān)技術(shù)中提到,現(xiàn)在的網(wǎng)絡(luò)瀏覽器在呈現(xiàn)網(wǎng)頁(yè)時(shí),通常根據(jù)網(wǎng)絡(luò)應(yīng)用和信息提 供商所要求的方式來(lái)呈現(xiàn)網(wǎng)頁(yè)內(nèi)容,而并未充分考慮用戶(hù)對(duì)頁(yè)面呈現(xiàn)方式的偏好。因此現(xiàn) 有的網(wǎng)絡(luò)瀏覽器雖然具有不同的渲染引擎,當(dāng)其呈現(xiàn)效果基本相同,這使得用戶(hù)無(wú)法充分 個(gè)性化定制網(wǎng)絡(luò)瀏覽器呈現(xiàn)的內(nèi)容,降低用戶(hù)的感受體驗(yàn)。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種在瀏覽器側(cè)進(jìn)行頁(yè)面元素處理的 裝置,用于實(shí)現(xiàn)改進(jìn)的網(wǎng)頁(yè)元素處理方式,該裝置可以允許用戶(hù)來(lái)個(gè)性化定制網(wǎng)頁(yè)元素的 呈現(xiàn)方式,從而增強(qiáng)頁(yè)面的顯示效果。
圖1示出了本發(fā)明一個(gè)實(shí)施例的頁(yè)面元素處理裝置的結(jié)構(gòu)示意圖。參見(jiàn)圖1,該裝 置包括設(shè)置在瀏覽器側(cè)的至少一個(gè)DOM對(duì)象處理器110,頁(yè)面解析器120以及DOM處理器 130。
其中,DOM對(duì)象處理器110包括至少一個(gè),且預(yù)先設(shè)置在瀏覽器側(cè),在每個(gè)DOM對(duì) 象處理器Iio中存儲(chǔ)有特定DOM對(duì)象的定制處理。DOM對(duì)象處理器的數(shù)量可以是I個(gè),也可 以是2個(gè),也可以是3個(gè)、4個(gè)、5個(gè)或更多,具體的數(shù)量根據(jù)特定DOM對(duì)象的數(shù)量以及定制 處理的數(shù)量決定。圖1中為了示意,將其設(shè)置為3個(gè)。
在對(duì)獲取的一個(gè)頁(yè)面進(jìn)行處理時(shí),頁(yè)面解析器120在瀏覽器側(cè)加載該獲取頁(yè)面, 并對(duì)獲取頁(yè)面的頁(yè)面元素進(jìn)行解析??紤]到頁(yè)面以及頁(yè)面元素并不能夠直接進(jìn)行處理,因 此,頁(yè)面解析器120在解析過(guò)程中將各頁(yè)面元素轉(zhuǎn)換為DOM對(duì)象,以供后續(xù)DOM處理器130處理。
參見(jiàn)圖1,D0M處理器130,耦接到頁(yè)面解析器120和至少一個(gè)DOM對(duì)象處理器110。 當(dāng)頁(yè)面解析器120解析結(jié)束后,啟動(dòng)DOM處理器130。DOM處理器130在轉(zhuǎn)換的DOM對(duì)象中 選擇至少一個(gè)作為當(dāng)前準(zhǔn)備處理的DOM對(duì)象,調(diào)用設(shè)置的至少一個(gè)DOM對(duì)象處理器110,對(duì) 選擇出的DOM對(duì)象進(jìn)行設(shè)置的定制處理。
在本發(fā)明實(shí)施例中,對(duì)于每個(gè)DOM對(duì)象,在瀏覽器側(cè)設(shè)置對(duì)其進(jìn)行定制處理的DOM 對(duì)象處理器,在頁(yè)面的獲取過(guò)程中,利用DOM處理器調(diào)用選擇的DOM對(duì)象處理器對(duì)DOM對(duì)象 進(jìn)行設(shè)置的定制處理。由此可見(jiàn),采用本發(fā)明實(shí)施例提供的瀏覽器網(wǎng)頁(yè)元素處理的裝置,能 夠分別對(duì)于每個(gè)DOM對(duì)象進(jìn)行處理,其處理的方式是由DOM處理器進(jìn)行選擇調(diào)用,由此呈現(xiàn) 的網(wǎng)頁(yè)內(nèi)容能夠?qū)崿F(xiàn)個(gè)性化定制處理,而并非是根據(jù)網(wǎng)絡(luò)應(yīng)用和信息提供商所要求的固定 方式,進(jìn)而實(shí)現(xiàn)了用戶(hù)能夠?qū)W(wǎng)絡(luò)瀏覽器呈現(xiàn)的內(nèi)容進(jìn)行個(gè)性化定制的目的,滿(mǎn)足不同的 用戶(hù)的偏好,提高用戶(hù)的感受體驗(yàn)。
參見(jiàn)圖1,瀏覽器進(jìn)行網(wǎng)頁(yè)元素處理的裝置還包括樹(shù)生成器140,耦接到DOM處理 器130。當(dāng)DOM處理器130調(diào)用DOM對(duì)象處理器110,對(duì)DOM對(duì)象進(jìn)行定制處理結(jié)束后,樹(shù) 生成器140利用經(jīng)過(guò)設(shè)置的定制處理的DOM對(duì)象生成最終的DOM樹(shù),并對(duì)DOM樹(shù)進(jìn)行渲染。
其中,對(duì)于DOM對(duì)象處理器110的調(diào)用操作,DOM處理器130需要知道每個(gè)DOM對(duì) 象處理器Iio的地址,進(jìn)而進(jìn)行相應(yīng)的調(diào)用,若DOM對(duì)象處理器較多且存儲(chǔ)地址相對(duì)分散 的情況下,DOM處理器130的調(diào)用就會(huì)存在一定的難度?,F(xiàn)提供一種優(yōu)選的調(diào)用方式,本例 中,設(shè)置對(duì)象處理注冊(cè)表,在該表格中登記所有的DOM對(duì)象處理器的登記信息,此處的登記 信息可以包括各DOM對(duì)象處理器的存儲(chǔ)地址、每個(gè)DOM對(duì)象處理器的定制操作、是否正在被調(diào)用等等。DOM處理器130可以在對(duì)象處理注冊(cè)表中查詢(xún)是否存在對(duì)當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器。可選的,若查詢(xún)結(jié)果為是,DOM處理器130就會(huì)根據(jù)登記信息查找到對(duì)該DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器110,并調(diào)用。可選的,若查詢(xún)結(jié)果為否,則證明當(dāng)前不存在對(duì)該DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器110。在調(diào)用的過(guò)程中,若DOM處理器130確定瀏覽器中存在對(duì)當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器時(shí),調(diào)用該DOM對(duì)象處理器,對(duì)該DOM對(duì)象進(jìn)行設(shè)置的定制處理。而DOM處理器130確定瀏覽器中不存在為當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器時(shí),對(duì)該DOM對(duì)象進(jìn)行缺省處理。對(duì)于每個(gè)DOM對(duì)象,都存在有至少兩個(gè)事件,一個(gè)是該DOM對(duì)象已經(jīng)加載完成時(shí)觸發(fā)的事件ContentReady,另一個(gè)是整個(gè)HTML都已經(jīng)加載完成時(shí)觸發(fā)的事件DocumentReady。為了對(duì)網(wǎng)頁(yè)元素進(jìn)行定制,本發(fā)明實(shí)施例的構(gòu)思為在與網(wǎng)頁(yè)元素相對(duì)應(yīng)的DOM對(duì)象的ContentReady事件被觸發(fā)時(shí),就調(diào)用在網(wǎng)頁(yè)瀏覽器處預(yù)先編制的定制處理,從而實(shí)現(xiàn)對(duì)特定網(wǎng)頁(yè)元素的定制處理。與該構(gòu)思相對(duì)應(yīng),在每個(gè)DOM對(duì)象處理器110存儲(chǔ)有對(duì)特定DOM對(duì)象已經(jīng)加載完成時(shí)觸發(fā)的事件ContentReady進(jìn)行處理的處理方式。進(jìn)一步,由于DOM對(duì)象還存在整個(gè)頁(yè)面已加載完成時(shí)觸發(fā)的事件,因此,每個(gè)DOM對(duì)象處理器110還可以存儲(chǔ)有對(duì)獲取頁(yè)面的HTML全部加載完成時(shí)觸發(fā)的事件DocumentReady進(jìn)行處理的處理方式。由于最終呈現(xiàn)的是一個(gè)完整的網(wǎng)頁(yè),而現(xiàn)有技術(shù)中網(wǎng)頁(yè)的呈現(xiàn)是由渲染引擎渲染結(jié)束后呈現(xiàn)的,因此,為便于頁(yè)面呈現(xiàn),本發(fā)明實(shí)施例提供的DOM處理器設(shè)置在瀏覽器的渲染引擎中。在現(xiàn)有技術(shù)中,渲染引擎通常僅僅根據(jù)HTML網(wǎng)頁(yè)中的JS代碼來(lái)控制相應(yīng)DOM對(duì)象,渲染引擎提供了與JS代碼間的接口。而JS代碼通常由網(wǎng)絡(luò)應(yīng)用自身或業(yè)務(wù)提供商控制,因此,渲染引擎所渲染出的網(wǎng)頁(yè)頁(yè)面是相類(lèi)似的。而本例中,DOM處理器130能夠利用瀏覽器提供的對(duì)網(wǎng)頁(yè)元素進(jìn)行渲染的接口調(diào)用至少一個(gè)DOM對(duì)象處理器110,從該接口可以實(shí)現(xiàn)用戶(hù)的個(gè)性化定制。優(yōu)選的,上述各實(shí)施例中提及的DOM對(duì)象包括文本框元素、密碼輸入框元素。當(dāng)然,DOM對(duì)象不僅僅包括上述兩種元素,其他的網(wǎng)頁(yè)元素均可以實(shí)現(xiàn)。上述的瀏覽器進(jìn)行頁(yè)面元素處理的裝置的各部分構(gòu)架是根據(jù)其功能提供的,實(shí)際構(gòu)架并不僅限于上述各部分,還可以包括其他部分、模塊、器件等。圖2示出了根據(jù)本發(fā)明實(shí)施例的一種頁(yè)面元素處理方法的流程圖,在瀏覽器側(cè)設(shè)置至少一個(gè)DOM對(duì)象處理器,其中每個(gè)DOM對(duì)象處理器存儲(chǔ)有特定DOM對(duì)象的定制處理。該方法的處理流程包括步驟S202至步驟S204。步驟S202、在瀏覽器側(cè)加載獲取頁(yè)面,并對(duì)獲取頁(yè)面的頁(yè)面元素進(jìn)行解析,將各頁(yè)面元素轉(zhuǎn)換為DOM對(duì)象。步驟S204、調(diào)用設(shè)置的至少一個(gè)DOM對(duì)象處理器,對(duì)步驟S202轉(zhuǎn)換的DOM對(duì)象中的至少一個(gè)進(jìn)行設(shè)置的定制處理。在本發(fā)明實(shí)施例中,對(duì)于每個(gè)DOM對(duì)象,在瀏覽器側(cè)設(shè)置對(duì)其進(jìn)行定制處理的DOM對(duì)象處理器,在頁(yè)面的獲取過(guò)程中,調(diào)用選擇的DOM對(duì)象處理器對(duì)DOM對(duì)象進(jìn)行設(shè)置的定制處理。由此可見(jiàn),采用本發(fā)明實(shí)施例提供的瀏覽器網(wǎng)頁(yè)元素處理的裝置,能夠分別對(duì)于每個(gè)DOM對(duì)象進(jìn)行處理,其處理的方式是根據(jù)DOM對(duì)象進(jìn)行選擇調(diào)用,由此呈現(xiàn)的網(wǎng)頁(yè)內(nèi)容能夠 實(shí)現(xiàn)個(gè)性化定制處理,而并非是根據(jù)網(wǎng)絡(luò)應(yīng)用和信息提供商所要求的固定方式,進(jìn)而實(shí)現(xiàn) 了用戶(hù)能夠?qū)W(wǎng)絡(luò)瀏覽器呈現(xiàn)的內(nèi)容進(jìn)行個(gè)性化定制的目的,滿(mǎn)足不同的用戶(hù)的偏好,提 聞?dòng)脩?hù)的感受:體驗(yàn)。
參見(jiàn)圖2所示流程,步驟S204在實(shí)施之后,利用經(jīng)過(guò)設(shè)置的定制處理的DOM對(duì)象 生成最終的DOM樹(shù),并對(duì)對(duì)DOM樹(shù)進(jìn)行渲染,將渲染后的網(wǎng)頁(yè)呈現(xiàn)給用戶(hù)。
步驟S204中提及調(diào)用設(shè)置的至少一個(gè)DOM對(duì)象處理器,通過(guò)調(diào)用是需要知道調(diào)用 對(duì)象(每個(gè)DOM對(duì)象處理器)的地址,進(jìn)而進(jìn)行相應(yīng)的調(diào)用,若DOM對(duì)象處理器較多且存儲(chǔ)地 址相對(duì)分散的情況下,調(diào)用就會(huì)存在一定的難度。現(xiàn)提供一種優(yōu)選的調(diào)用方式,本例中,設(shè) 置對(duì)象處理注冊(cè)表,在該表格中登記所有的DOM對(duì)象處理器的登記信息,此處的登記信息 可以包括各DOM對(duì)象處理器的存儲(chǔ)地址、每個(gè)DOM對(duì)象處理器的定制操作、是否正在被調(diào)用 等等。其具體的調(diào)用方法請(qǐng)參見(jiàn)圖3。
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的DOM對(duì)象處理器的調(diào)用方法的流程圖。參見(jiàn) 圖3,該步驟包括步驟S302至步驟S306。
步驟S302、在對(duì)象處理注冊(cè)表中查詢(xún)是否存在對(duì)當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì) 象處理器。
步驟S304、當(dāng)步驟S302的查詢(xún)結(jié)果為是時(shí),根據(jù)登記信息查找到對(duì)該DOM對(duì)象進(jìn) 行處理的DOM對(duì)象處理器,并調(diào)用。
步驟S306、當(dāng)步驟S302的查詢(xún)結(jié)果為否時(shí),確定不存在對(duì)當(dāng)成當(dāng)前DOM對(duì)象進(jìn)行 處理的DOM對(duì)象處理器。
在調(diào)用的過(guò)程中,當(dāng)瀏覽器中存在對(duì)當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器時(shí), 調(diào)用該DOM對(duì)象處理器,對(duì)該DOM對(duì)象進(jìn)行設(shè)置的定制處理。而當(dāng)瀏覽器中不存在為當(dāng)前 DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器時(shí),則直接對(duì)該DOM對(duì)象進(jìn)行缺省處理。
對(duì)于每個(gè)DOM對(duì)象,都存在有至少兩個(gè)事件,一個(gè)是該DOM對(duì)象已經(jīng)加載完 成時(shí)觸發(fā)的事件ContentReady,另一個(gè)是整個(gè)HTML都已經(jīng)加載完成時(shí)觸發(fā)的事件 DocumentReady。為了對(duì)網(wǎng)頁(yè)元素進(jìn)行定制,本發(fā)明實(shí)施例的構(gòu)思為在與網(wǎng)頁(yè)元素相對(duì)應(yīng) 的DOM對(duì)象的ContentReady事件被觸發(fā)時(shí),就調(diào)用在網(wǎng)頁(yè)瀏覽器處預(yù)先編制的定制處理, 從而實(shí)現(xiàn)對(duì)特定網(wǎng)頁(yè)元素的定制處理。與該構(gòu)思相對(duì)應(yīng),在每個(gè)DOM對(duì)象處理器存儲(chǔ)有對(duì) 特定DOM對(duì)象已經(jīng)加載完成時(shí)觸發(fā)的事件ContentReady進(jìn)行處理的處理方式。進(jìn)一步,由 于DOM對(duì)象還存在整個(gè)頁(yè)面已加載完成時(shí)觸發(fā)的事件,因此,每個(gè)DOM對(duì)象處理器還可以存 儲(chǔ)有對(duì)獲取頁(yè)面的HTML全部加載完成時(shí)觸發(fā)的事件DocumentReady進(jìn)行處理的處理方式。
在現(xiàn)有技術(shù)中,渲染引擎通常僅僅根據(jù)HTML網(wǎng)頁(yè)中的JS代碼來(lái)控制相應(yīng)DOM對(duì) 象,渲染引擎提供了與JS代碼間的接口。而JS代碼通常由網(wǎng)絡(luò)應(yīng)用自身或業(yè)務(wù)提供商控 制,因此,渲染引擎所渲染出的網(wǎng)頁(yè)頁(yè)面是相類(lèi)似的。而本例中,瀏覽器提供了能夠?qū)W(wǎng)頁(yè) 元素進(jìn)行渲染的接口,利用該接口調(diào)用至少一個(gè)DOM對(duì)象處理器,實(shí)現(xiàn)用戶(hù)的個(gè)性化定制。
實(shí)施例一
本發(fā)明實(shí)施例中提及到的瀏覽器可以為多種,例如微軟公司的Internet Explorer (簡(jiǎn)稱(chēng) IE)、Mozilla Firefox、谷歌公司的 Chrome、0pera 以及蘋(píng)果公司的 Safari坐坐 寸寸ο
現(xiàn)以IE瀏覽器為例對(duì)本發(fā)明實(shí)施例提供的網(wǎng)頁(yè)元素的具體處理方法進(jìn)行詳細(xì)地闡述和說(shuō)明。當(dāng)瀏覽器為IE瀏覽器時(shí),瀏覽器所在的客戶(hù)端在WebBrowser插件設(shè)置第一接口 IElementBehaviorFactory、第 二接口 IElementBehavior 以及第三接 口IDocHostMHandler,其中,第一接口和第二接口用于調(diào)用各DOM對(duì)象處理器,第三接口用于將各DOM對(duì)象處理器注冊(cè)到對(duì)象處理注冊(cè)表中。對(duì)于針對(duì)每個(gè)網(wǎng)頁(yè)元素的特定處理,可能需要實(shí)現(xiàn)IElementBehavior (兀素行為)Implementing the IElementBehavior Interface (執(zhí)行兀素行為接口)Implementing the Notify Method (執(zhí)行通知方法)Implementing the Init Method (執(zhí)行初始化方法)Implementing the Detach Method (執(zhí)行分離方法)IElementBehaviorFactory (兀素行為工廠(chǎng)行為)IElementNamespaceFactory (兀素命名空間工廠(chǎng)接口)IElementNamespaceFactoryCallback (兀素命名空間回調(diào)接口)初始化設(shè)置后,IE瀏覽器中的客戶(hù)端WebBrowser (網(wǎng)絡(luò)瀏覽器)插件實(shí)現(xiàn)網(wǎng)頁(yè)元素的具體處理步驟如下步驟1、客戶(hù)端 WebBrowser 插件實(shí)現(xiàn) IElementBehaviorFactory 接口和IElementBehavior 接 口。步驟2、客戶(hù)端 WebBrowser 插件實(shí)現(xiàn) IDocHostUIHandler 接口。注這里的WebBrowser插件就是在針對(duì)特定DOM對(duì)象的特定處理器在IE中的具體實(shí)施方式
,實(shí)現(xiàn)IDocHostUIHandler接口用于把特定處理器注冊(cè)到對(duì)象注冊(cè)表中由DOM處理器米用,實(shí)現(xiàn)IElementBehaviorFactory和IElementBehavior接口用于說(shuō)明具體的定制處理實(shí)現(xiàn)。步驟3、頁(yè)面創(chuàng)建時(shí),MSHTML 會(huì)調(diào)用 IDocHostUIHandler 的 GetHostInfo 方法,客戶(hù)端程序向MSHTML提供頁(yè)面元素TAG及對(duì)應(yīng)的Behavior Name注MSHTML對(duì)應(yīng)于內(nèi)核引擎,這個(gè)步驟對(duì)應(yīng)于DOM處理器查詢(xún)所有的DOM對(duì)象處理器列表。步驟4、頁(yè)面加載時(shí),MSHTML會(huì)根據(jù)以上提供的Behavior Name,逐個(gè)調(diào)用IElementBehaviorFactory 的 FindBehavior 方法,由客戶(hù)端提供 IElementBehavior 接口 實(shí)現(xiàn)。此處,優(yōu)選的,,并與頁(yè)面提供的對(duì)應(yīng)接口 IElementBehaviorSite關(guān)聯(lián),以確定是否定制行為。步驟5、若客戶(hù)端提供了 IElementBehavior實(shí)現(xiàn),MSHTML在加載對(duì)應(yīng)TAG的頁(yè)面元素時(shí),調(diào)用元素行為通知方法,通知客戶(hù)端頁(yè)面元素的加載狀態(tài)。注元素行為通知方法在IE中實(shí)現(xiàn)可利用IElementBehavior :Notify。其中,值得注意的是,步驟4和步驟5對(duì)應(yīng)于DOM處理器查調(diào)用相應(yīng)的DOM對(duì)象處理器對(duì)DOM對(duì)象進(jìn)行處理。本實(shí)施例的方法并不僅限IE瀏覽器,對(duì)于其他瀏覽器,其實(shí)現(xiàn)方式是相類(lèi)似的。
優(yōu)選的,上述各實(shí)施例中提及的DOM對(duì)象包括文本框元素、密碼輸入框元素。當(dāng) 然,DOM對(duì)象不僅僅包括上述兩種元素,其他的網(wǎng)頁(yè)元素均可以實(shí)現(xiàn)。現(xiàn)以文本框元素為例 進(jìn)行說(shuō)明。
實(shí)施例二
對(duì)于Textarea (文本框)頁(yè)面單元,為用戶(hù)提供了在網(wǎng)頁(yè)中輸入大量文字的輸入 框,但是在當(dāng)前的網(wǎng)頁(yè)呈現(xiàn)方式下,用戶(hù)僅僅可以textarea中輸入簡(jiǎn)單的文字,而無(wú)法輸 入預(yù)訂格式的文字、圖像等內(nèi)容。而通過(guò)在瀏覽器處提供對(duì)textarea的定制渲染,可以使 得在textarea中輸入更加豐富的內(nèi)容。
本例中對(duì)于文本框元素的具體操作提供相應(yīng)的說(shuō)明。
1、首先,進(jìn)行事件定義,在IDocHostUIHandler的GetHostInfo方法中,對(duì)瀏覽器 的結(jié)構(gòu)和標(biāo)識(shí)進(jìn)行自定義。在文本框元素上設(shè)置一個(gè)div層,利用pCSSBuffer指針調(diào)度, 將涉及文本框元素的操作均牽引在div層上執(zhí)行。
2、IElementBehaviorFactory 的 FindBehavior 方法中,返回 IElementBehavior 的 實(shí)現(xiàn)對(duì)象 CTextAreaElementBehavior,并保存 MSHTML 提供的 IElementBehaviorSite 對(duì)象 指針。
3、MSHTML 調(diào)用文本框兀素行為通知(CTextAreaElementBehavior Notify)方 法時(shí),對(duì)涉及文本框元素的操作進(jìn)行實(shí)施。
在加載對(duì)應(yīng)TAG的文本框元素時(shí),調(diào)用元素行為通知方法,通知客戶(hù)端文本框元 素的加載狀態(tài)。在div層對(duì)文本框元素中的內(nèi)容進(jìn)行處理,該處理涉及調(diào)整文本框元素內(nèi) 容的寬度、高度、播放效果等。
在div層處理結(jié)束后,將文本框元素的內(nèi)容和div層的處理效果重疊,將重疊后的 效果呈現(xiàn)給用戶(hù)。
使用本發(fā)明實(shí)施例能夠?qū)崿F(xiàn)利用瀏覽器進(jìn)行頁(yè)面元素(文本框元素)進(jìn)行處理的 方法,實(shí)現(xiàn)用戶(hù)的個(gè)性化定制,提高用戶(hù)的感受體驗(yàn)。
采用本發(fā)明提供的裝置和方法,能夠達(dá)到如下有益效果
在本發(fā)明實(shí)施例中,對(duì)于每個(gè)DOM對(duì)象,在瀏覽器側(cè)設(shè)置對(duì)其進(jìn)行定制處理的DOM 對(duì)象處理器,在頁(yè)面的獲取過(guò)程中,利用DOM處理器調(diào)用選擇的DOM對(duì)象處理器對(duì)DOM對(duì)象 進(jìn)行設(shè)置的定制處理。由此可見(jiàn),采用本發(fā)明實(shí)施例提供的瀏覽器網(wǎng)頁(yè)元素處理的裝置,能 夠分別對(duì)于每個(gè)DOM對(duì)象進(jìn)行處理,其處理的方式是由DOM處理器進(jìn)行選擇調(diào)用,由此呈現(xiàn) 的網(wǎng)頁(yè)內(nèi)容能夠?qū)崿F(xiàn)個(gè)性化定制處理,而并非是根據(jù)網(wǎng)絡(luò)應(yīng)用和信息提供商所要求的固定 方式,進(jìn)而實(shí)現(xiàn)了用戶(hù)能夠?qū)W(wǎng)絡(luò)瀏覽器呈現(xiàn)的內(nèi)容進(jìn)行個(gè)性化定制的目的,滿(mǎn)足不同的 用戶(hù)的偏好,提高用戶(hù)的感受體驗(yàn)。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。 各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求 的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種 編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā) 明的最佳實(shí)施方式。
在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施 例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書(shū)由此明確地并入該具體實(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è)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。本發(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 )來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的頁(yè)面元素處理裝置中的一些或者全部部件的一些或者全部功能。本發(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)行說(shuō)明而不是對(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ī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱(chēng)。
權(quán)利要求
1.一種頁(yè)面元素處理裝置,包括 至少一個(gè)DOM對(duì)象處理器,設(shè)置在瀏覽器側(cè),每個(gè)DOM對(duì)象處理器配置為存儲(chǔ)有特定DOM對(duì)象的定制處理; 頁(yè)面解析器,配置為在所述瀏覽器側(cè)加載獲取頁(yè)面,并對(duì)所述獲取頁(yè)面的頁(yè)面元素進(jìn)行解析,將各頁(yè)面元素轉(zhuǎn)換為DOM對(duì)象; DOM處理器,耦接到所述頁(yè)面解析器和所述至少一個(gè)DOM對(duì)象處理器,配置為調(diào)用所述設(shè)置的至少一個(gè)DOM對(duì)象處理器,對(duì)所述轉(zhuǎn)換的DOM對(duì)象中的至少一個(gè)進(jìn)行設(shè)置的定制處理; 樹(shù)生成器,耦接到所述DOM處理器,配置為利用經(jīng)過(guò)所述設(shè)置的定制處理的DOM對(duì)象生成最終的DOM樹(shù),并對(duì)所述DOM樹(shù)進(jìn)行渲染。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述DOM處理器還配置為在對(duì)象處理注冊(cè)表中查詢(xún)是否存在對(duì)當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器,其中,所述對(duì)象處理注冊(cè)表中登記有所述設(shè)置的至少一個(gè)DOM對(duì)象處理器的登記信息; 若是,根據(jù)登記信息查找到對(duì)該DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器,并調(diào)用。
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述DOM處理器還配置為當(dāng)所述瀏覽器中存在對(duì)當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器時(shí),調(diào)用該DOM對(duì)象處理器,對(duì)該DOM對(duì)象進(jìn)行設(shè)置的定制處理; 當(dāng)所述瀏覽器中不存在為當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器時(shí),對(duì)該DOM對(duì)象進(jìn)行缺省處理。
4.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的裝置,其特征在于,每個(gè)DOM對(duì)象處理器存儲(chǔ)有對(duì)所述特定DOM對(duì)象已經(jīng)加載完成時(shí)觸發(fā)的事件ContentReady進(jìn)行處理的處理方式。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于,每個(gè)DOM對(duì)象處理器還存儲(chǔ)有對(duì)所述獲取頁(yè)面的HTML全部加載完成時(shí)觸發(fā)的事件DocumentReady進(jìn)行處理的處理方式。
6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的裝置,其特征在于,所述DOM處理器設(shè)置在所述瀏覽器的渲染引擎中。
7.根據(jù)權(quán)利要求1至6任一項(xiàng)所述的裝置,其特征在于,所述DOM處理器配置為利用所述瀏覽器提供的對(duì)所述網(wǎng)頁(yè)元素進(jìn)行渲染的接口調(diào)用所述至少一個(gè)對(duì)象處理器。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述DOM對(duì)象包括文本框元素;密碼輸入框元素。
9.一種頁(yè)面元素處理方法,在瀏覽器側(cè)設(shè)置至少一個(gè)DOM對(duì)象處理器,其中每個(gè)DOM對(duì)象處理器存儲(chǔ)有特定DOM對(duì)象的定制處理,該方法包括 在瀏覽器側(cè)加載獲取頁(yè)面,并對(duì)所述獲取頁(yè)面的頁(yè)面元素進(jìn)行解析,將各頁(yè)面元素轉(zhuǎn)換為DOM對(duì)象; 調(diào)用所述設(shè)置的至少一個(gè)DOM對(duì)象處理器,對(duì)所述轉(zhuǎn)換的DOM對(duì)象中的至少一個(gè)進(jìn)行設(shè)置的定制處理; 利用經(jīng)過(guò)所述設(shè)置的定制處理的DOM對(duì)象生成最終的DOM樹(shù); 對(duì)所述DOM樹(shù)進(jìn)行渲染。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,調(diào)用所述設(shè)置的至少一個(gè)DOM對(duì)象處理器,包括在對(duì)象處理注冊(cè)表中查詢(xún)是否存在對(duì)當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器,其中,所述對(duì)象處理注冊(cè)表中登記有所述設(shè)置的至少一個(gè)DOM對(duì)象處理器的登記信息; 若是,根據(jù)登記信息查找到對(duì)該DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器,并調(diào)用。
11.根據(jù)權(quán)利要求9所述的方法,其特征在于,調(diào)用所述設(shè)置的至少一個(gè)DOM對(duì)象處理器,對(duì)所述轉(zhuǎn)換的DOM對(duì)象中的至少一個(gè)進(jìn)行設(shè)置的定制處理,包括 當(dāng)所述瀏覽器中存在對(duì)當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器時(shí),調(diào)用該DOM對(duì)象處理器,對(duì)該DOM對(duì)象進(jìn)行設(shè)置的定制處理; 當(dāng)所述瀏覽器中不存在為當(dāng)前DOM對(duì)象進(jìn)行處理的DOM對(duì)象處理器時(shí),對(duì)該DOM對(duì)象進(jìn)行缺省處理。
12.根據(jù)權(quán)利要求9至11任一項(xiàng)所述的方法,其特征在于,每個(gè)DOM對(duì)象處理器存儲(chǔ)有對(duì)所述特定DOM對(duì)象已經(jīng)加載完成時(shí)觸發(fā)的事件ContentReady進(jìn)行處理的處理方式。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,每個(gè)DOM對(duì)象處理器還存儲(chǔ)有對(duì)所述獲取頁(yè)面的HTML全部加載完成時(shí)觸發(fā)的事件DocumentReady進(jìn)行處理的處理方式。
14.根據(jù)權(quán)利要求9至13任一項(xiàng)所述的方法,其特征在于,調(diào)用所述設(shè)置的至少一個(gè)DOM對(duì)象處理器,包括 根據(jù)所述瀏覽器提供的、對(duì)所述網(wǎng)頁(yè)元素進(jìn)行渲染的接口調(diào)用所述至少一個(gè)DOM對(duì)象處理器。
15.根據(jù)權(quán)利要求10至14任一項(xiàng)所述的方法,其特征在于,所述瀏覽器為IE瀏覽器時(shí),所述瀏覽器所在的客戶(hù)端在WebBiwser插件設(shè)置第一接P IElementBehaviorFactory、第二接口 IElementBehavior 以及第三接 PIDocHostUIHandler,其中,所述第一接口和所述第二接口用于調(diào)用各DOM對(duì)象處理器,所述第三接口用于將各DOM對(duì)象處理器注冊(cè)到所述對(duì)象處理注冊(cè)表中; 調(diào)用所述設(shè)置的至少一個(gè)DOM對(duì)象處理器,包括 內(nèi)核引擎根據(jù)所述瀏覽器所在的客戶(hù)端提供的行為名稱(chēng)BehaviorName,通過(guò)所述第二接口調(diào)用與所述第一接口連接的所述至少一個(gè)DOM對(duì)象處理器;以及 所述內(nèi)核引擎根據(jù)所述客戶(hù)端提供的頁(yè)面元素標(biāo)識(shí)TAG加載對(duì)應(yīng)的頁(yè)面元素時(shí),調(diào)用元素行為通知方法,通知所述客戶(hù)端頁(yè)面元素的加載狀態(tài)。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于,所述內(nèi)核引擎調(diào)用所述至少一個(gè)DOM對(duì)象處理器,包括 所述內(nèi)核引擎與所述獲取頁(yè)面提供的第四接口 IElementBehaviorSite關(guān)聯(lián),通過(guò)所述第四接口確定當(dāng)前DOM對(duì)象是定已有定制處理。
17.根據(jù)權(quán)利要求9至16任一項(xiàng)所述的方法,其特征在于,所述DOM對(duì)象包括文本框元素;密碼輸入框元素。
全文摘要
本發(fā)明公開(kāi)了一種頁(yè)面元素處理裝置和方法,該方法包括在瀏覽器側(cè)加載獲取頁(yè)面,并對(duì)所述獲取頁(yè)面的頁(yè)面元素進(jìn)行解析,將各頁(yè)面元素轉(zhuǎn)換為DOM對(duì)象;調(diào)用所述設(shè)置的至少一個(gè)DOM對(duì)象處理器,對(duì)所述轉(zhuǎn)換的DOM對(duì)象中的至少一個(gè)進(jìn)行設(shè)置的定制處理;利用經(jīng)過(guò)所述設(shè)置的定制處理的DOM對(duì)象生成最終的DOM樹(shù);對(duì)所述DOM樹(shù)進(jìn)行渲染。采用本發(fā)明能夠根據(jù)用戶(hù)需求對(duì)網(wǎng)頁(yè)進(jìn)行個(gè)性化定制。
文檔編號(hào)G06F17/30GK102999578SQ201210454468
公開(kāi)日2013年3月27日 申請(qǐng)日期2012年11月13日 優(yōu)先權(quán)日2012年11月13日
發(fā)明者唐曦, 陳志 , 李鳴, 任寰 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司