專利名稱:一種ie6內(nèi)核與新型ie內(nèi)核的切換方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請涉及瀏覽器的技術(shù)領(lǐng)域,特別是涉及一種IE6內(nèi)核與新型IE內(nèi)核的切換方法和一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng)。
背景技術(shù):
瀏覽器最重要的部分是“Rendering Engine”,可大概譯為“解釋引擎”,一般習慣將之稱為“瀏覽器內(nèi)核”。瀏覽器內(nèi)核負責對網(wǎng)頁語法的解釋(如HTML、JavaScript)并渲染(顯示)網(wǎng)頁。所以,通常所謂的瀏覽器內(nèi)核也就是對頁面進行下載、解析、執(zhí)行、渲染的引擎,該引擎決定了瀏覽器如何顯示網(wǎng)頁的內(nèi)容以及頁面的格式信息。目前市場上流行的瀏覽器,按實現(xiàn)方式大體可以分為兩種:第一種,瀏覽器的開發(fā)者既進行瀏覽器內(nèi)核的開發(fā),也進行瀏覽器產(chǎn)品的開發(fā)。如:chrome瀏覽器、firefox瀏覽器、Safari瀏覽器、Internet Explore瀏覽器等。第二種,瀏覽器的開發(fā)者,僅進行瀏覽器產(chǎn)品的開發(fā),使用其他瀏覽器廠商實現(xiàn)的內(nèi)核。將內(nèi)核嵌入到自己瀏覽器內(nèi)來使用。如:360安全瀏覽器、遨游瀏覽器、世界之窗瀏覽器、搜狗瀏覽器等。這種瀏覽器通常采用Internet Explorer瀏覽器內(nèi)核,即采用IE內(nèi)核的瀏覽器。目前,普通使用IE內(nèi)核的瀏覽器包括采用IE6 (Internetexplorer 6)內(nèi)核的瀏覽器和采用IE8 (Internetexplorer 8)內(nèi)核的瀏覽器。具體而言,Internetexplorer 6于2001年10月發(fā)布,距今已10年有余。但采用IE6內(nèi)核的瀏覽器至今仍然占據(jù)我國主流瀏覽器市場50%以上份額,由于環(huán)境變化、年代久遠等問題,采用IE6內(nèi)核的瀏覽器在面對當下互聯(lián)網(wǎng)中大量使用腳本、圖片、Flash等素材的環(huán)境中性能表現(xiàn)低下,無法使用戶獲得流暢體驗。Internetexplorer 8于2008年發(fā)布以來得到長足應(yīng)用,如今采用IE8內(nèi)核的瀏覽器已經(jīng)逐漸取代采用IE6內(nèi)核的瀏覽器的市場份額,成為用戶主流的網(wǎng)頁瀏覽器。WindowsVista以上的系統(tǒng)甚至直接取消了對IE8以下版本的支持,但基于我國互聯(lián)網(wǎng)較為復(fù)雜的構(gòu)成,顯然用戶會面臨諸多問題。其中較為典型的就是自2001年以來,大量個人、團隊基于IE6不嚴謹?shù)臉藴室?guī)范構(gòu)建了大量只能在采用IE6內(nèi)核的瀏覽器下正常運行的網(wǎng)站、服務(wù)。這樣一來,就直接導(dǎo)致了用戶在享受新一代瀏覽器全新技術(shù)的同時,無法正常實現(xiàn)自己的工作、娛樂等需求??傊?,需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是:如何解決IE6內(nèi)核瀏覽器和IE8內(nèi)核瀏覽器的兼容性和適配性問題,使用戶獲得更好的網(wǎng)頁瀏覽體驗。
發(fā)明內(nèi)容
本申請所要解決的技術(shù)問題是提供一種IE6內(nèi)核與新型IE內(nèi)核的切換方法,用以有效控制IE內(nèi)核瀏覽器的頁面下載過程,提高頁面下載的效率和穩(wěn)定性。相應(yīng)地,本申請還提供了一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng),用以保證上述方法在實際中的應(yīng)用。
本申請為解決上述問題提供了一種IE6內(nèi)核與新型IE內(nèi)核的切換方法,包括:生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號;若當前適配的IE內(nèi)核版本號為IE6內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;若當前適配的IE內(nèi)核版本號為新型IE內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。優(yōu)選的是,所述新型IE內(nèi)核為IE8內(nèi)核,所述新型IE內(nèi)核文件為IE8內(nèi)核文件。優(yōu)選的是,所述新型IE內(nèi)核為IE8以上版本的IE內(nèi)核,所述新型IE內(nèi)核文件為IE8以上版本的IE內(nèi)核文件。優(yōu)選的是,所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動態(tài)鏈接庫DLL和IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊表配置文件和IE8內(nèi)核的注冊表配置文件。優(yōu)選的是,所述生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端的步驟進一步包括:從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫 DLL ;經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;將所述IE6內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;生成IE6內(nèi)核和IE8內(nèi)核的注冊表配置文件,并導(dǎo)入所述客戶端的注冊表中。優(yōu)選的是,所述從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL的步驟包括:重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE6內(nèi)核的動態(tài)鏈接庫DLL ;以及,重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE8內(nèi)核的動態(tài)鏈接庫DLL。優(yōu)選的是,所述瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號的步驟進一步包括:若當前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址,則判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核;若當前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址,則判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核;若當前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中,則判定當前適配的IE內(nèi)核版本號為IE8內(nèi)核。優(yōu)選的是,所述瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號的步驟還包括:若當前用戶提交的統(tǒng)一資源定位符URL信息包含在新型IE內(nèi)核兼容域名列表中,則判定當前適配的IE內(nèi)核版本號為對應(yīng)的新型IE內(nèi)核。優(yōu)選的是,所述瀏覽器進程重定向至客戶端相應(yīng)位置加載所述IE6內(nèi)核文件的步驟進一步包括:子步驟S11、當監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE6內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S12、當監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL ;子步驟S13、當監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;子步驟S14、當監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S12 ;子步驟S15、當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述子步驟S12。優(yōu)選的是,所述瀏覽器進程重定向至客戶端相應(yīng)位置加載所述IE8內(nèi)核文件的步驟進一步包括:子步驟S21、當監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE8內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S22、當監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL ;子步驟S23、當監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;子步驟S24、當監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S22 ;子步驟S25、當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述子步驟S22。優(yōu)選的是,所述的方法還包括:將所述IE6內(nèi)核文件和IE8內(nèi)核文件寫入內(nèi)存;
所述瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件的步驟為,所述瀏覽器進程重定向至內(nèi)存中的相應(yīng)位置加載所述IE6內(nèi)核文件;所述瀏覽器進程重定向至相應(yīng)位置加載所述IE8內(nèi)核文件的步驟為,所述瀏覽器進程重定向至內(nèi)存中的相應(yīng)位置加載所述IE8內(nèi)核文件。本申請還提供了一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng),包括:內(nèi)核文件生成模塊,用于生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;IE內(nèi)核版本號判斷模塊,用于由瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號;IE6內(nèi)核加載模塊,用于在當前適配的IE內(nèi)核版本號為IE6內(nèi)核時,由瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;IE8內(nèi)核加載模塊,用于在當前適配的IE內(nèi)核版本號為新型IE內(nèi)核時,由瀏覽器進程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。優(yōu)選的是,所述新型IE內(nèi)核為IE8內(nèi)核,所述新型IE內(nèi)核文件為IE8內(nèi)核文件。優(yōu)選的是,所述新型IE內(nèi)核為IE8以上版本的IE內(nèi)核,所述新型IE內(nèi)核文件為IE8以上版本的IE內(nèi)核文件。優(yōu)選的是,所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動態(tài)鏈接庫DLL和IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊表配置文件和IE8內(nèi)核的注冊表配置文件。優(yōu)選的是,所述內(nèi)核文件生成模塊進一步包括:DLL提取子模塊,用于從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;相關(guān)文件組織子模塊,用于經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;安裝子模塊,用于將所述IE6內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;注冊表配置子模塊,用于生成IE6內(nèi)核和IE8內(nèi)核的注冊表配置文件,并導(dǎo)入所述客戶端的注冊表中。優(yōu)選的是,所述DLL提取子模塊進一步包括:第一 API重載單元,用于重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第一 DLL獲取單元,用于通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;第一篩選單元,用于排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE6內(nèi)核的動態(tài)鏈接庫DLL ;以及,第二 API重載單元,用于重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第二 DLL獲取單元,用于通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;
第二篩選單元,用于排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE8內(nèi)核的動態(tài)鏈接庫DLL。優(yōu)選的是,所述IE內(nèi)核版本號判斷模塊進一步包括:第一判定子模塊,用于在前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址時,判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核;第二判定子模塊,用于在當前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址時,判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核;第三判定子模塊,用于在當前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中時,判定當前適配的IE內(nèi)核版本號為IE8內(nèi)核。優(yōu)選的是,所述IE6內(nèi)核加載模塊進一步包括:第一注冊表操作子模塊,用于在監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE6內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第一 DLL操作子模塊,用于在監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL;第一相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;第一 COM對象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述第一 DLL操作子模塊;第一DLL內(nèi)核句柄操作子模塊,用于當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述第一 DLL操作子模塊。優(yōu)選的是,所述IE8內(nèi)核加載模塊進一步包括:第二注冊表操作子模塊,用于在監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE8內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第二 DLL操作子模塊,用于在監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL;第二相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;第二 COM對象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述第二 DLL操作子模塊;
第二DLL內(nèi)核句柄操作子模塊,用于當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述第二 DLL操作子模塊。優(yōu)選的是,所述的系統(tǒng)還包括:內(nèi)存寫入模塊,用于將所述IE6內(nèi)核文件和IE8內(nèi)核文件寫入內(nèi)存;所述瀏覽器進程重定向至的相應(yīng)位置為內(nèi)存中的相應(yīng)位置。本申請?zhí)峁┝艘环NIE6內(nèi)核與新型IE內(nèi)核的切換方法,其包括:生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動態(tài)鏈接庫DLL和IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊表配置文件和IE8內(nèi)核的注冊表配置文件;則所述生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端的步驟包括:從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;將所述IE6內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;生成IE6內(nèi)核和IE8內(nèi)核的注冊表配置文件,并導(dǎo)入所述客戶端的注冊表中;其中所述從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL的步驟包括:重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE6內(nèi)核的動態(tài)鏈接庫DLL ;以及,重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號;若當前適配的IE內(nèi)核版本號為IE6內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;若當前適配的IE內(nèi)核版本號為新型IE內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。本申請還提供了一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng),其包括:內(nèi)核文件生成模塊,用于生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動態(tài)鏈接庫DLL和IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊表配置文件和IE8內(nèi)核的注冊表配置文件;則所述內(nèi)核文件生成模塊進一步包括:DLL提取子模塊,用于從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;相關(guān)文件組織子模塊,用于經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;安裝子模塊,用于將所述IE6內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;注冊表配置子模塊,用于生成IE6內(nèi)核和IE8內(nèi)核的注冊表配置文件,并導(dǎo)入所述客戶端的注冊表中;其中所述DLL提取子模塊進一步包括:第一 API重載單元,用于重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第一 DLL獲取單元,用于通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;第一篩選單元,用于排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE6內(nèi)核的動態(tài)鏈接庫DLL ;以及,第二API重載單元,用于重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第二 DLL獲取單元,用于通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;第二篩選單元,用于排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE內(nèi)核版本號判斷模塊,用于由瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號;IE6內(nèi)核加載模塊,用于在當前適配的IE內(nèi)核版本號為IE6內(nèi)核時,由瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;IE8內(nèi)核加載模塊,用于在當前適配的IE內(nèi)核版本號為新型IE內(nèi)核時,由瀏覽器進程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。與現(xiàn)有技術(shù)相比,本申請具有以下優(yōu)點:本申請可以在不影響用戶IE使用的前提下,對適合IE6顯示的頁面加載IE6內(nèi)核,適合IE8顯示的頁面加載IE8內(nèi)核,以達到復(fù)雜環(huán)境下用戶瀏覽最完整的兼容性和適配性。本申請充分結(jié)合了 IE6對銀行/大型門戶網(wǎng)站的普遍支持、IE8的安全、渲染、速度方面提升的優(yōu)點,實現(xiàn)了一種IE6內(nèi)核與IE8內(nèi)核最完整的兼容方式。再者,通過本申請的智能判定自動切換內(nèi)核,無須重新啟動瀏覽器,無須更換操作系統(tǒng)、或升級IE、或安裝多款軟件,使用方便。此外,本申請的擴展性好,可以支持IE其它版本內(nèi)核自動切換。
圖1是本申請的一種IE6內(nèi)核與新型IE內(nèi)核的切換方法實施例1的步驟流程圖;圖2是本申請的一種IE6內(nèi)核與新型IE內(nèi)核的切換方法實施例2的步驟流程圖;圖3是本申請的一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng)實施例的結(jié)構(gòu)框圖。
具體實施例方式為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本申請作進一步詳細的說明。本申請的核心構(gòu)思在于,在不影響用戶IE使用的前提下,對適合IE6顯示的頁面加載IE6內(nèi)核,適合IE8顯示的頁面加載IE8內(nèi)核,以達到復(fù)雜環(huán)境下用戶瀏覽最完整的兼容性和適配性。參考圖1,示出了本申請的一種IE6內(nèi)核與新型IE內(nèi)核的切換方法實施例1的步驟流程圖,具體可以包括以下步驟:步驟101、生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;在本申請實施例中,所述IE內(nèi)核指采用IE(Internet Explorer)瀏覽器內(nèi)核,IE6內(nèi)核即指采用IE6 (Internet Explorer 6)的瀏覽器內(nèi)核,新型IE內(nèi)核包括IE8內(nèi)核以及IE8以上版本的IE內(nèi)核,IE8內(nèi)核即指采用IE8 (Internet Explorer 8)的瀏覽器內(nèi)核,IE8以上版本的IE內(nèi)核即指采用IE9、IElO等可能出現(xiàn)的更高版本的瀏覽器內(nèi)核。為使本領(lǐng)域技術(shù)人員更好地理解本申請,在本說明書中,將IE8內(nèi)核作為新型IE內(nèi)核的一種示例進行說明。在本申請的一種優(yōu)選實施例中,所述新型IE內(nèi)核文件可以為IE8內(nèi)核文件,則所述IE6內(nèi)核文件和IE8內(nèi)核文件可以包括:IE6內(nèi)核的動態(tài)鏈接庫DLL和IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊表配置文件和IE8內(nèi)核的注冊表配置文件。其中,動態(tài)鏈接庫DLL,是Dynamic Link Library的縮寫形式,DLL是一個包含可由多個程序同時使用的代碼和數(shù)據(jù)的庫,DLL不是可執(zhí)行文件。動態(tài)鏈接提供了一種方法,使進程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。函數(shù)的可執(zhí)行代碼位于一個DLL中,該DLL包含一個或多個已被編譯、鏈接并與使用它們的進程分開存儲的函數(shù)。DLL還有助于共享數(shù)據(jù)和資源。多個應(yīng)用程序可同時訪問內(nèi)存中單個DLL副本的內(nèi)容。通過使用DLL,程序可以實現(xiàn)模塊化,由相對獨立的組件組成。在本實施例中,所述步驟101具體可以包括如下子步驟:子步驟S01、從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;子步驟S02、經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;子步驟S03、將所述IE6內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;例如,將所述IE6內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的某個目錄下。在具體實現(xiàn)中,上述IE6內(nèi)核的相關(guān)文件,以及,IE8內(nèi)核的相關(guān)文件可以分別存儲在客戶端的不同目錄下;或者,也可以存儲至同一目錄,但針對各文件分別標注其版本號標識,本申請對此不作限制。子步驟S04、生成IE6內(nèi)核和IE8內(nèi)核的注冊表配置文件,并導(dǎo)入所述客戶端的注冊表中?;贗E內(nèi)核的瀏覽器,通過靜態(tài)、動態(tài)方式加載的內(nèi)核DLL非常多,這些DLL可能與操作系統(tǒng)底層相關(guān),可能還需要引用一些注冊表項、數(shù)據(jù)文件、或者語言包文件,需要通過調(diào)試逐步分析生成。更為優(yōu)選的是,所述子步驟SOl可以進一步包括以下子步驟:子步驟S01-11、重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;子步驟S01-12、通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;例如,通過監(jiān)視LoadLibrary接口(或其它模塊查看器),獲得瀏覽器加載的所有DLL。子步驟S01-13、排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE6內(nèi)核的動態(tài)鏈接庫DLL。以及,子步驟S01-21、重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;子步驟S01-22、通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;
子步驟S01-23、排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE8內(nèi)核的動態(tài)鏈接庫DLL。步驟102、瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號;URL (Uniform Resoure Locator統(tǒng)一資源定位器)是Wffff網(wǎng)頁的地址,URL使用數(shù)字和字母按一定順序排列以確定一個地址。URL的第一個部分http:1l表示的是要訪問的文件的類型。在網(wǎng)上,這幾乎總是使用http (意思是超文本轉(zhuǎn)換協(xié)議,hypertext transferprotocol,因為它是用來轉(zhuǎn)換網(wǎng)頁的協(xié)議。)URL從左到右由下述部分組成:Internet資源類型(scheme):指出Wffff客戶程序用來C作的工具。々[!“http://,,表示W(wǎng)ffff服務(wù)器,“ftp://”表示FTP服務(wù)器,“gopher://”表示Gopher服務(wù)器,而“new: ”表示Newgroup新聞組。服務(wù)器地址(host):指出WWW網(wǎng)頁所在的服務(wù)器域名。端口(port):有時(并非總是這樣),對某些資源的訪問來說,需給出相應(yīng)的服務(wù)器提供端口號。路徑(path):指明服務(wù)器上某資源的位置(其格式與DOS系統(tǒng)中的格式一樣,通常有目錄/子目錄/文件名這樣結(jié)構(gòu)組成)。與端口一樣,路徑并非總是需要的。URL 地址格式排列為:scheme: //host:port/path,例如 http: //www.maogo0.com/bbs就是一個典型的URL地址。瀏覽器首先看到http (超文本傳送協(xié)議),便知道處理的是HTML鏈接 。接下來的www.maogo0.com是站點地址,最后是目錄/bbs。公知的是,進程是一個正在執(zhí)行的程序,即計算機中正在運行的程序?qū)嵗?;其可以分配給處理器并作為一個實體由處理器執(zhí)行。從用戶角度來看,瀏覽器進程可以理解為在任務(wù)管理器內(nèi)所啟動的瀏覽器代表的進程。在本申請的一種優(yōu)選實施例中,所述步驟102具體可以包括如下子步驟:子步驟S121、若當前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址,則判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核;子步驟S122、若當前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址,則判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核;子步驟S123、若當前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中,則判定當前適配的IE內(nèi)核版本號為IE8內(nèi)核。即每個頁面開始連接前,瀏覽器進程會判斷訪問域名的信息,若為局域網(wǎng)地址或為純IP地址的HTTP請求,則開啟IE6模式;根據(jù)實際中IE8內(nèi)核的兼容域名列表,判定開啟IE8模式。在具體實現(xiàn)中,對于其它情況,可以使用系統(tǒng)自帶的其它IE內(nèi)核。在實際中,若新型IE內(nèi)核為IE8以上版本的IE內(nèi)核,則所述步驟102還可以包括如下子步驟:若當前用戶提交的統(tǒng)一資源定位符URL信息包含在新型IE內(nèi)核兼容域名列表中,則判定當前適配的IE內(nèi)核版本號為對應(yīng)的新型IE內(nèi)核。步驟103、若當前適配的IE內(nèi)核版本號為IE6內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;重定向,字面即為對某A文件的操作直接轉(zhuǎn)移到B文件。比如讀、寫、設(shè)置長度或文件結(jié)尾指針等屬性、甚至是刪除操作。在本申請的一種優(yōu)先實施例中,所述瀏覽器進程重定向至客戶端相應(yīng)位置加載所述IE6內(nèi)核文件的步驟可以進一步包括以下子步驟:子步驟S11、當監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE6內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S12、當監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL ;子步驟S13、當監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;子步驟S14、當監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S12 ;其中,COM對象(The Component Object Model組件對象模型)是遵循COM規(guī)范編寫、以Win32動態(tài)鏈接庫(DLL)或可執(zhí)行文件(EXE)形式發(fā)布的可執(zhí)行二進制代碼,能夠滿足對組件架構(gòu)的所有需求。遵循COM的規(guī)范標準,組件與應(yīng)用、組件與組件之間可以互操作,極其方便地建立可伸縮的應(yīng)用系統(tǒng)。COM對象是一個使用COM規(guī)格的可以重復(fù)使用的軟件組件。使用COM規(guī)格可以確保COM對象很好的工作,并且很容易的結(jié)合到你的應(yīng)用程序中。事實上,COM基本相當于一個黑匣子,這個黑匣子能為你的應(yīng)用程序完成很多的工作。COM對象一般用動態(tài)連接庫(DLL)實現(xiàn)。和普通的DLL—樣,COM對象暴露一些方法,應(yīng)用程序能夠呼叫它,以便完成任何支持的操作。子步驟S15、當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述子步驟S12。其中,句柄是windows用來標志應(yīng)用程序中建立的或是使用的唯一整數(shù),windows使用了大量的句柄來標志很多對象。但是,句柄不是一個指針,程序不能利用它句柄來直接閱讀文件中的信息。步驟104、若當前適配的IE內(nèi)核版本號為新型IE內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。在本申請的一種優(yōu)先實施例中,所述瀏覽器進程重定向至客戶端相應(yīng)位置加載所述IE8內(nèi)核文件的步驟可以進一步包括如下子步驟:子步驟S21、當監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE8內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S22、當監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL ;子步驟S23、當監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;子步驟S24、當監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S22 ;子步驟S25、當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述子步驟S22。具體而言,在本申請實施例中,所述IE內(nèi)核文件的重定向主要是指在瀏覽器創(chuàng)建時,轉(zhuǎn)向程序指定路徑加載文件,主要包括:UIE內(nèi)核重定向。使瀏覽器加載指定版本內(nèi)核對象,重載實現(xiàn)系統(tǒng)API,具體可以米用:CoCreateInstance:創(chuàng)建文檔及框架組件CoGetClassObject:創(chuàng)建腳本引擎及腳本對象CoCreateInstanceEx:創(chuàng)建文字系統(tǒng)等擴展接口2、DLL重定向。一些功能模塊可能以DLL方式實現(xiàn),也需要重載系統(tǒng)API以重定向,具體可以采用:LoadLibrary/LoadLibrary:實現(xiàn) DLL 加載FreeLibrary:實現(xiàn) DLL 釋放3、注冊表重定向。使瀏覽器加載/保存指定版本的配置數(shù)據(jù),重載實現(xiàn)系統(tǒng)API,具體可以采用:RegOpenKeyEx:打開注冊表鍵值以讀寫當然,上述方法僅僅用作示例,在具體實現(xiàn)中,本領(lǐng)域技術(shù)人員應(yīng)用其它內(nèi)核重定向的方法加載對應(yīng)版本的IE內(nèi)核文件均是可行的,本申請對此無需加以限制。參考圖2,示出了本申請的一種IE6內(nèi)核與新型IE內(nèi)核的切換方法實施例2的步驟流程圖,具體可以包括以下步驟:步驟201、生成IE6內(nèi)核文件和IE8內(nèi)核文件,并導(dǎo)入客戶端;步驟202、瀏覽器進程啟動時,將所述IE6內(nèi)核文件和IE8內(nèi)核文件寫入內(nèi)存;步驟203、瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號;步驟204、若當前適配的IE內(nèi)核版本號為IE6內(nèi)核,則瀏覽器進程重定向至內(nèi)存中相應(yīng)位置加載所述IE6內(nèi)核文件;步驟205、若當前適配的IE內(nèi)核版本號為IE8內(nèi)核,則瀏覽器進程重定向至內(nèi)存中相應(yīng)位置加載所述IE8內(nèi)核文件。為使本領(lǐng)域技術(shù)人員更好地理解本申請,以下通過一個完整示例說明本申請的IE6內(nèi)核與IE8內(nèi)核的切換過程。步驟A、將IE6內(nèi)核的主要模塊文件和IE8內(nèi)核的主要模塊文件,安裝到客戶端的指定目錄中;其中,所述IE6內(nèi)核的主要模塊文件和IE8內(nèi)核的主要模塊文件包括:IE6內(nèi)核的動態(tài)鏈接庫DLL和IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件等。步驟B、將IE6內(nèi)核的注冊表配置文件和IE8內(nèi)核的注冊表配置文件,導(dǎo)入客戶端的注冊表中;步驟C、瀏覽器啟動時,執(zhí)行以下子步驟:子步驟Cl、監(jiān)視注冊表、DLL、內(nèi)存、網(wǎng)頁(用戶輸入或點擊的URL)的訪問;子步驟C2、加載IE6內(nèi)核的主要模塊文件和IE8內(nèi)核的主要模塊文件到內(nèi)存中;步驟D、當瀏覽器接收到用戶提交的URL時,按照如下方式計算適合該URL的IE內(nèi)核版本號:如果URL為局域網(wǎng)地址,則返回IE內(nèi)核版本號為IE6(使用IE6內(nèi)核);如果URL包含IP地址,則返回IE內(nèi)核版本號為IE6(使用IE6內(nèi)核);如果URL在IE8的兼容域名列表中,則返回IE內(nèi)核版本號為IE8(使用IE8內(nèi)核);其它情況返回0(使用系統(tǒng)自有的IE內(nèi)核)。步驟E、瀏覽器開始加載內(nèi)核,創(chuàng)建頁面時,會讀寫注冊表、加載DLL及數(shù)據(jù)文件、創(chuàng)建COM對象,具體涉及以下操作:1、當監(jiān)視到瀏覽器訪問注冊表時,若訪問IE配置項,則引導(dǎo)其讀寫步驟B中導(dǎo)入的對應(yīng)項;若查詢IE內(nèi)核模塊路徑,則返回步驟C中的內(nèi)存指定位置;2、當監(jiān)視到瀏覽器訪問DLL時,根據(jù)步驟D中計算的IE內(nèi)核版本號,定位到內(nèi)存中對應(yīng)的內(nèi)核文件目錄,到該內(nèi)核目錄中查找相同名稱的DLL,若找到,則引導(dǎo)瀏覽器進程加載對應(yīng)的內(nèi)核文件;否則,引導(dǎo)瀏覽器加載系統(tǒng)的缺省模塊;3、當監(jiān)視到瀏覽器訪問數(shù)據(jù)文件、語言包文件時,根據(jù)步驟D中計算的IE內(nèi)核版本號,到內(nèi)存中對應(yīng)的內(nèi)核文件目錄中查找相應(yīng)文件;4、當監(jiān)視到瀏覽器創(chuàng)建COM對象時,從步驟B的注冊表中,查找實現(xiàn)該COM對象的DLL,執(zhí)行以上步驟2 ;5、當監(jiān)視到瀏覽器訪問DLL內(nèi)核句柄時,執(zhí)行以上步驟2。在本例中,步驟A、B可以在安裝過程中完成,每次瀏覽器進程啟動時執(zhí)行C項,步驟D、E在每次瀏覽頁面時均執(zhí)行。需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本申請所必須的。參考圖3,示出了本申請的一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng)實施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:內(nèi)核文件生成模塊301,用于生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;IE內(nèi)核版本號判斷模塊302,用于由瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號;IE6內(nèi)核加載模塊303,用于在當前適配的IE內(nèi)核版本號為IE6內(nèi)核時,由瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;IE8內(nèi)核加載模塊304,用于在當前適配的IE內(nèi)核版本號為新型IE內(nèi)核時,由瀏覽器進程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。在本申請實施例中,所述新型IE內(nèi)核可以為IE8內(nèi)核,為使本領(lǐng)域技術(shù)人員更好地理解本申請,在本申請實施例中以IE8內(nèi)核為新型IE內(nèi)核的一種示例進行說明。在實際中,所述新型IE內(nèi)核還可以為IE8以上版本的IE內(nèi)核,在這種情況下,所述新型IE內(nèi)核文件可以為IE8以上版本的IE內(nèi)核文件。在具體實現(xiàn)中,所述新型IE內(nèi)核文件可以為IE8內(nèi)核文件,則所述IE6內(nèi)核文件和IE8內(nèi)核文件可以包括:IE6內(nèi)核的動態(tài)鏈接庫DLL和IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊表配置文件和IE8內(nèi)核的注冊表配置文件。在這種情況下,所述內(nèi)核文件生成模塊301可以進一步包括如下子模塊:DLL提取子模塊,用于從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;相關(guān)文件組織子模塊,用于經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;安裝子模塊,用于將所述IE6內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;注冊表配置子模塊,用于生成IE6內(nèi)核和IE8內(nèi)核的注冊表配置文件,并導(dǎo)入所述客戶端的注冊表中。在本申請的一種優(yōu)選實施例中,所述DLL提取子模塊可以進一步包括如下子模塊:第一 API重載單元,用于重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第一 DLL獲取單元,用于通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;第一篩選單元,用于排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE6內(nèi)核的動態(tài)鏈接庫DLL ;以及,第二 API重載單元,用于重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第二 DLL獲取單元,用于通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;第二篩選單元,用于排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE8內(nèi)核的動態(tài)鏈接庫DLL。作為本申請實施例具體應(yīng)用的一種示例,所述IE內(nèi)核版本號判斷模塊302可以進一步包括如下子模塊:第一判定子模塊,用于在前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址時,判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核;第二判定子模塊,用于在當前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址時,判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核;第三判定子模塊,用于在當前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中時,判定當前適配的IE內(nèi)核版本號為IE8內(nèi)核。
在具體實現(xiàn)中,所述IE6內(nèi)核加載模塊303可以進一步包括如下子模塊:第一注冊表操作子模塊,用于在監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE6內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第一 DLL操作子模塊,用于在監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL;第一相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;第一 COM對象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述第一 DLL操作子模塊;第一DLL內(nèi)核句柄操作子模塊,用于當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述第一 DLL操作子模塊。在具體實現(xiàn)中,所述IE8內(nèi)核加載模塊304可以進一步包括如下子模塊:第二注冊表操作子模塊,用于在監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE8內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第二 DLL操作子模塊,用于在監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL ;第二相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;第二 COM對象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述第二 DLL操作子模塊;第二DLL內(nèi)核句柄操作子模塊,用于當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述第二 DLL操作子模塊。在本申請的一種優(yōu)選實施例中,所述系統(tǒng)還可以包括:內(nèi)存寫入模塊,用于將所述IE6內(nèi)核文件和IE8內(nèi)核文件寫入內(nèi)存;在這種情況下,所述瀏覽器進程重定向至的相應(yīng)位置為內(nèi)存中的相應(yīng)位置。對于系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。本申請可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如:個人計算機、服務(wù)器計算機、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。以上對本申請所提供的一種IE6內(nèi)核與新型IE內(nèi)核的切換方法和一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。本發(fā)明揭示了 Al、一種IE6內(nèi)核與新型IE內(nèi)核的切換方法,其特征在于,所述的方法包括:生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為 IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動態(tài)鏈接庫DLL和IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊表配置文件和IE8內(nèi)核的注冊表配置文件;則所述生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端的步驟包括:從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;將所述IE6內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;生成IE6內(nèi)核和IE8內(nèi)核的注冊表配置文件,并導(dǎo)入所述客戶端的注冊表中;其中所述從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL的步驟包括:重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE6內(nèi)核的動態(tài)鏈接庫DLL ;以及,重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號;若當前適配的IE內(nèi)核版本號為IE6內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;若當前適配的IE內(nèi)核版本號為新型IE內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。A2、如Al所述的方法,其特征在于,所述新型IE內(nèi)核進一步包括:IE8以上版本的IE內(nèi)核;則所述新型IE內(nèi)核文件進一步包括:IE8以上版本的IE內(nèi)核文件。A3、如Al A2中任一項所述的方法,其特征在于,所述瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號的步驟進一步包括:若當前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址,則判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核;若當前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址,則判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核;若當前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中,則判定當前適配的IE內(nèi)核版本號為IE8內(nèi)核。A4、如Al A2中任一所述的方法,其特征在于,所述瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號的步驟還包括:若當前用戶提交的統(tǒng)一資源定位符URL信息包含在新型IE內(nèi)核兼容域名列表中,則判定當前適配的IE內(nèi)核版本號為對應(yīng)的新型IE內(nèi)核。A5、如Al所述的方法,其特征在于,所述瀏覽器進程重定向至客戶端相應(yīng)位置加載所述IE6內(nèi)核文件的步驟進一步包括:子步驟S11、當監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE6內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S12、當監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL ;子步驟S13、當監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件 、語言包文件時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;子步驟S14、當監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S12 ;子步驟S15、當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述子步驟S12。A6^nAl所述的方法,其特征在于,所述瀏覽器進程重定向至客戶端相應(yīng)位置加載所述新型IE內(nèi)核文件的步驟進一步包括:其中所述新型IE內(nèi)核文件包括IE8內(nèi)核文件,子步驟S21、當監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE8內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S22、當監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL;子步驟S23、當監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;子步驟S24、當監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S22 ;子步驟S25、當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述子步驟S22。本發(fā)明還揭示了 B7、一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng),其特征在于,包括:內(nèi)核文件生成模塊,用于生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動態(tài)鏈接庫DLL和IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊表配置文件和IE8內(nèi)核的注冊表配置文件;則所述內(nèi)核文件生成模塊進一步包括:DLL提取子模塊,用于從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;相關(guān)文件組織子模塊,用于經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;安裝子模塊,用于將所述IE6內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;注冊表配置子模塊,用于生成IE6內(nèi)核和IE8內(nèi)核的注冊表配置文件,并導(dǎo)入所述客戶端的注冊表中;其中所述DLL提取子模塊進一步包括:第一 API重載單元,用于重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第一 DLL獲取單元,用于通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL;第一篩選單元,用于排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE6內(nèi)核的動態(tài)鏈接庫DLL ;以及,第二 API重載單元,用于重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口API ;第二 DLL獲取單元,用于通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;第二篩選單元,用于排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE內(nèi)核版本號判斷模塊,用于由瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號;IE6內(nèi)核加載模塊,用于在當前適配的IE內(nèi)核版本號為IE6內(nèi)核時,由瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;IE8內(nèi)核加載模塊,用于在當前適配的IE內(nèi)核版本號為新型IE內(nèi)核時,由瀏覽器進程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。B8、如B7所述的系統(tǒng),其特征在于,所述新型IE內(nèi)核進一步包括:IE8以上版本的IE內(nèi)核;所述新型IE內(nèi)核文件進一步包括:IE8以上版本的IE內(nèi)核文件。B9、如B7 B8中任一項所述的系統(tǒng),其特征在于,所述IE內(nèi)核版本號判斷模塊進一步包括:第一判定子模塊,用于在前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址時,判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核; 第二判定子模塊,用于在當前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址時,判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核;第三判定子模塊,用于在當前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中時,判定當前適配的IE內(nèi)核版本號為IE8內(nèi)核。BlO^n B7所述的系統(tǒng),其特征在于,所述IE6內(nèi)核加載模塊進一步包括:第一注冊表操作子模塊,用于在監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE6內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第一 DLL操作子模塊,用于在監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL ;第一相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;第一 COM對象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述第一 DLL操作子模塊;第一 DLL內(nèi)核句柄操作子模塊,用于當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述第一 DLL操作子模塊。B11、如B7所述的系統(tǒng),其特征在于,所述IE8內(nèi)核加載模塊進一步包括:其中所述IE8內(nèi)核加載模塊中所述的新型IE內(nèi)核文件包括IE8內(nèi)核文件,第二注冊表操作子模塊,用于在監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE8內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第二 DLL操作子模塊,用于在監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL;第二相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件;第二 COM對象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述第二 DLL操作子模塊;第二DLL內(nèi)核句柄操作子模塊,用于當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述第二 DLL操作子模塊。
權(quán)利要求
1.一種IE6內(nèi)核與新型IE內(nèi)核的切換方法,其特征在于,所述的方法包括: 生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動態(tài)鏈接庫DLL和IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊表配置文件和IE8內(nèi)核的注冊表配置文件; 則所述生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端的步驟包括:從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;將所述IE6內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;生成IE6內(nèi)核和IE8內(nèi)核的注冊表配置文件,并導(dǎo)入所述客戶端的注冊表中; 其中所述從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL的步驟包括:重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE6內(nèi)核的動態(tài)鏈接庫DLL ;以及,重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE8內(nèi)核的動態(tài)鏈接庫DLL ; 瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號; 若當前適配的IE內(nèi)核版本號為IE6內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件; 若當前適配的IE內(nèi)核版本號為新型IE內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。
2.如權(quán)利要求1所述的方法,其特征在于,所述新型IE內(nèi)核進一步包括:IE8以上版本的IE內(nèi)核;則所述新型IE內(nèi)核文件進一步包括:IE8以上版本的IE內(nèi)核文件。
3.如權(quán)利要求1 2中任一項權(quán)利要求所述的方法,其特征在于,所述瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號的步驟進一步包括: 若當前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址,則判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核; 若當前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址,則判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核; 若當前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中,則判定當前適配的IE內(nèi)核版本號為IE8內(nèi)核。
4.如權(quán)利要求1 2中任一項權(quán)利要求所述的方法,其特征在于,所述瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號的步驟還包括: 若當前用戶提交的統(tǒng)一資源定位符URL信息包含在新型IE內(nèi)核兼容域名列表中,則判定當前適配的IE內(nèi)核版本號為對應(yīng)的新型IE內(nèi)核。
5.如權(quán)利要求1所述的方法,其特征在于,所述瀏覽器進程重定向至客戶端相應(yīng)位置加載所述IE6內(nèi)核文件的步驟進一步包括: 子步驟S11、當監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE6內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息; 子步驟S12、當監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL ; 子步驟S13、當監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件; 子步驟S14、當監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S12 ; 子步驟S15、當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述子步驟S12。
6.如權(quán)利要求1所述的方法,其特征在于,所述瀏覽器進程重定向至客戶端相應(yīng)位置加載所述新型IE內(nèi)核文件的步驟進一步包括:其中所述新型IE內(nèi)核文件包括IE8內(nèi)核文件, 子步驟S21、當監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE8內(nèi)核的注冊表配置文 件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息; 子步驟S22、當監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL ; 子步驟S23、當監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE8內(nèi)核的版本號,定位到對應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件; 子步驟S24、當監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S22 ; 子步驟S25、當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述子步驟S22。
7.—種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng),其特征在于,包括: 內(nèi)核文件生成模塊,用于生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動態(tài)鏈接庫DLL和IE8內(nèi)核的動態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊表配置文件和IE8內(nèi)核的注冊表配置文件; 則所述內(nèi)核文件生成模塊進一步包括:DLL提取子模塊,用于從IE6內(nèi)核提取IE6內(nèi)核的動態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動態(tài)鏈接庫DLL ;相關(guān)文件組織子模塊,用于經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;安裝子模塊,用于將所述IE6內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;注冊表配置子模塊,用于生成IE6內(nèi)核和IE8內(nèi)核的注冊表配置文件,并導(dǎo)入所述客戶端的注冊表中; 其中所述DLL提取子模塊進一步包括:第一API重載單元,用于重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第一 DLL獲取單元,用于通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL ;第一篩選單元,用于排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE6內(nèi)核 的動態(tài)鏈接庫DLL ;以及,第二 API重載單元,用于重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第二 DLL獲取單元,用于通過監(jiān)視動態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動態(tài)鏈接庫DLL;第二篩選單元,用于排除系統(tǒng)底層的動態(tài)鏈接庫DLL,提取IE8內(nèi)核的動態(tài)鏈接庫DLL ; IE內(nèi)核版本號判斷模塊,用于由瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號; IE6內(nèi)核加載模塊,用于在當前適配的IE內(nèi)核版本號為IE6內(nèi)核時,由瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件; IE8內(nèi)核加載模塊,用于在當前適配的IE內(nèi)核版本號為新型IE內(nèi)核時,由瀏覽器進程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述新型IE內(nèi)核進一步包括:IE8以上版本的IE內(nèi)核;所述新型IE內(nèi)核文件進一步包括:IE8以上版本的IE內(nèi)核文件。
9.如權(quán)利要求7 8中任一項權(quán)利要求所述的系統(tǒng),其特征在于,所述IE內(nèi)核版本號判斷模塊進一步包括: 第一判定子模塊,用于在前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址時,判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核; 第二判定子模塊,用于在當前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址時,判定當前適配的IE內(nèi)核版本號為IE6內(nèi)核; 第三判定子模塊,用于在當前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中時,判定當前適配的IE內(nèi)核版本號為IE8內(nèi)核。
10.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述IE6內(nèi)核加載模塊進一步包括: 第一注冊表操作子模塊,用于在監(jiān)視到瀏覽器進程訪問注冊表時,若訪問IE配置項,則引導(dǎo)瀏覽器進程讀寫IE6內(nèi)核的注冊表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息; 第一 DLL操作子模塊,用于在監(jiān)視到瀏覽器進程訪問動態(tài)鏈接庫DLL時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進程加載該動態(tài)鏈接庫DLL; 第一相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進程訪問數(shù)據(jù)文件、語言包文件時,根據(jù)當前適配的IE6內(nèi)核的版本號,定位到對應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進程加載該數(shù)據(jù)文件和語言包文件; 第一 COM對象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進程創(chuàng)建COM對象時,從所述客戶端的注冊表中,查找實現(xiàn)該COM對象的動態(tài)鏈接庫DLL,然后調(diào)用所述第一 DLL操作子模塊;第一DLL內(nèi)核句柄操作子模塊,用于當監(jiān)視到瀏覽器進程訪問DLL內(nèi)核句柄時,調(diào)用所述第一 DLL操 作子模塊。
全文摘要
本申請?zhí)峁┝艘环NIE6內(nèi)核與新型IE內(nèi)核的切換方法和切換系統(tǒng)。本申請?zhí)峁┑姆椒?,包括生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;瀏覽器進程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當前適配的IE內(nèi)核版本號;若當前適配的IE內(nèi)核版本號為IE6內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;若當前適配的IE內(nèi)核版本號為新型IE內(nèi)核,則瀏覽器進程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。本申請可以有效控制IE內(nèi)核瀏覽器的頁面下載過程,提高頁面下載的效率和穩(wěn)定性。
文檔編號G06F9/48GK103176844SQ20131012385
公開日2013年6月26日 申請日期2011年9月28日 優(yōu)先權(quán)日2011年9月28日
發(fā)明者陳志 , 唐曦, 趙晨曦 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司