pt的元素的網(wǎng)頁(yè)功能正常使用,瀏覽器在第一次轉(zhuǎn)碼后的頁(yè)面中該元素被點(diǎn)擊時(shí),向服務(wù)器發(fā)送包括網(wǎng)頁(yè)信息的網(wǎng)頁(yè)請(qǐng)求,其中,網(wǎng)頁(yè)信息包括元素在頁(yè)面的原始網(wǎng)頁(yè)中的位置、頁(yè)面的原始網(wǎng)頁(yè)的統(tǒng)一資源定位符。
[0029]其中,該元素包括但不限于:具有onclick屬性的元素、或具有href屬性且以“javascript: ”開(kāi)頭的元素。
[0030]其中,網(wǎng)頁(yè)信息是服務(wù)器在對(duì)原始網(wǎng)頁(yè)進(jìn)行第一次轉(zhuǎn)碼的過(guò)程中,監(jiān)測(cè)到需要用戶點(diǎn)擊以執(zhí)行JavaScript的元素時(shí)生成的。即當(dāng)服務(wù)器在對(duì)原始網(wǎng)頁(yè)進(jìn)行第一次轉(zhuǎn)碼的時(shí)候,如果監(jiān)測(cè)到需要用戶點(diǎn)擊以執(zhí)行JavaScript的元素,則生成網(wǎng)頁(yè)信息,該網(wǎng)頁(yè)信息包括元素在頁(yè)面的原始網(wǎng)頁(yè)中的位置、頁(yè)面的原始網(wǎng)頁(yè)的統(tǒng)一資源定位符。當(dāng)服務(wù)器將第一次轉(zhuǎn)碼后的頁(yè)面發(fā)送給瀏覽器時(shí),也攜帶該網(wǎng)頁(yè)信息。
[0031]步驟S102:根據(jù)統(tǒng)一資源定位符加載頁(yè)面的原始網(wǎng)頁(yè),以及根據(jù)位置在原始網(wǎng)頁(yè)中定位元素,并產(chǎn)生對(duì)元素的點(diǎn)擊事件以執(zhí)行JavaScript得到對(duì)應(yīng)網(wǎng)頁(yè),將對(duì)應(yīng)網(wǎng)頁(yè)進(jìn)行第二次轉(zhuǎn)碼。
[0032]服務(wù)器接收到瀏覽器的網(wǎng)頁(yè)請(qǐng)求,網(wǎng)頁(yè)請(qǐng)求中包括網(wǎng)頁(yè)信息的,網(wǎng)頁(yè)信息包括元素在頁(yè)面的原始網(wǎng)頁(yè)中的位置、頁(yè)面的原始網(wǎng)頁(yè)的統(tǒng)一資源定位符。
[0033]統(tǒng)一資源定位符(Uniform Resource Locator,簡(jiǎn)寫為URL)是對(duì)可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問(wèn)方法的一種簡(jiǎn)潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址,互聯(lián)網(wǎng)上的每個(gè)文件都有一個(gè)唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它。
[0034]服務(wù)器根據(jù)統(tǒng)一資源定位符加載頁(yè)面的原始網(wǎng)頁(yè),以及根據(jù)位置在原始網(wǎng)頁(yè)中定位元素,并產(chǎn)生對(duì)元素的點(diǎn)擊事件以執(zhí)行JavaScript得到對(duì)應(yīng)網(wǎng)頁(yè),將對(duì)應(yīng)網(wǎng)頁(yè)進(jìn)行第二次轉(zhuǎn)碼。在實(shí)際應(yīng)用中,具體包括如下過(guò)程:(I)根據(jù)統(tǒng)一資源定位符,重新加載原始網(wǎng)頁(yè);
(2)根據(jù)位置在原始網(wǎng)頁(yè)中定位元素,向元素所對(duì)應(yīng)的DOM節(jié)點(diǎn)發(fā)送點(diǎn)擊操作。文檔對(duì)象模型(Document Object Model,簡(jiǎn)寫為DOM),是W3C組織推薦的處理可擴(kuò)展置標(biāo)語(yǔ)言的標(biāo)準(zhǔn)編程接口,它是一種與平臺(tái)和語(yǔ)言無(wú)關(guān)的應(yīng)用程序接口(API),可以動(dòng)態(tài)地訪問(wèn)程序和腳本,更新其內(nèi)容、結(jié)構(gòu)和www文檔的風(fēng)格;D0M分為HTML DOM和XML DOM兩種;它們分別定義了訪問(wèn)和操作HTML/XML文檔的標(biāo)準(zhǔn)方法,并將對(duì)應(yīng)的文檔呈現(xiàn)為帶有元素、屬性和文本的樹(shù)結(jié)構(gòu)(節(jié)點(diǎn)樹(shù))。(3)執(zhí)行元素的JavaScript,形成第二次轉(zhuǎn)碼后的頁(yè)面。Html標(biāo)準(zhǔn)規(guī)定如果向節(jié)點(diǎn)發(fā)送點(diǎn)擊事件,會(huì)觸發(fā)onclick或href屬性定義的JavaScript代碼,執(zhí)行該JavaScript代碼,從而形成第二次轉(zhuǎn)碼后的網(wǎng)頁(yè)頁(yè)面。
[0035]其中,元素在原始網(wǎng)頁(yè)中的位置以XPath語(yǔ)言標(biāo)記。
[0036]XPath是一門在可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language,簡(jiǎn)寫為XML)文檔中查找信息的標(biāo)記語(yǔ)言,用于在XML文檔中通過(guò)元素和屬性進(jìn)行導(dǎo)航。當(dāng)然,元素在原始網(wǎng)頁(yè)中的位置還可以是用其它的標(biāo)記語(yǔ)言進(jìn)行標(biāo)記的,例如:標(biāo)準(zhǔn)通用置標(biāo)語(yǔ)言、超文本標(biāo)記語(yǔ)言、可延伸超文件標(biāo)記語(yǔ)言等等。
[0037]步驟S103:將第二次轉(zhuǎn)碼后的頁(yè)面發(fā)送給瀏覽器,以便瀏覽器顯示第二次轉(zhuǎn)碼后的頁(yè)面。
[0038]本發(fā)明實(shí)施方式服務(wù)器接收瀏覽器在第一次轉(zhuǎn)碼后的頁(yè)面中需用戶點(diǎn)擊以執(zhí)行JavaScript的元素被點(diǎn)擊時(shí),發(fā)送的包括網(wǎng)頁(yè)信息的網(wǎng)頁(yè)請(qǐng)求,網(wǎng)頁(yè)信息包括元素在頁(yè)面的原始網(wǎng)頁(yè)中的位置、頁(yè)面的原始網(wǎng)頁(yè)的統(tǒng)一資源定位符;根據(jù)統(tǒng)一資源定位符加載頁(yè)面的原始網(wǎng)頁(yè),以及根據(jù)位置在原始網(wǎng)頁(yè)中定位元素,并產(chǎn)生對(duì)元素的點(diǎn)擊事件以執(zhí)行JavaScript得到對(duì)應(yīng)網(wǎng)頁(yè),將對(duì)應(yīng)網(wǎng)頁(yè)進(jìn)行第二次轉(zhuǎn)碼;將第二次轉(zhuǎn)碼后的頁(yè)面發(fā)送給瀏覽器,以便瀏覽器顯示第二次轉(zhuǎn)碼后的頁(yè)面。通過(guò)這種方式,能夠保證需要用戶點(diǎn)擊以執(zhí)行JavaScript的元素的網(wǎng)頁(yè)功能在客戶端的正常使用。
[0039]參閱圖2,圖2是本發(fā)明網(wǎng)頁(yè)轉(zhuǎn)碼方法另一實(shí)施方式的流程圖,本實(shí)施方式是客戶端的流程圖,該方法包括:
[0040]步驟S201:當(dāng)?shù)谝淮无D(zhuǎn)碼后的頁(yè)面中需用戶點(diǎn)擊以執(zhí)行JavaScript的元素被點(diǎn)擊,則向服務(wù)器發(fā)送包括網(wǎng)頁(yè)信息的網(wǎng)頁(yè)請(qǐng)求,其中,網(wǎng)頁(yè)信息包括元素在頁(yè)面的原始網(wǎng)頁(yè)中的位置、頁(yè)面的原始網(wǎng)頁(yè)的統(tǒng)一資源定位符。
[0041 ] 原始網(wǎng)頁(yè)是指在個(gè)人計(jì)算機(jī)上顯示的網(wǎng)頁(yè),現(xiàn)有網(wǎng)頁(yè)的界面和風(fēng)格是為個(gè)人計(jì)算機(jī)設(shè)計(jì)的,將這些原始網(wǎng)頁(yè)直接在客戶端的移動(dòng)終端上顯示,顯示效果不好,通過(guò)服務(wù)器將原始網(wǎng)頁(yè)轉(zhuǎn)碼后,在移動(dòng)終端上顯示,可以獲得較好的顯示效果。但是,由于原始網(wǎng)頁(yè)轉(zhuǎn)碼后html代碼和結(jié)構(gòu)發(fā)生較大變化,轉(zhuǎn)碼頁(yè)面不支持原始網(wǎng)頁(yè)一些需要用戶點(diǎn)擊才被觸發(fā)的JavaScript,這造成網(wǎng)頁(yè)功能的缺失。
[0042]為了保證需要用戶點(diǎn)擊以執(zhí)行JavaScript的元素的網(wǎng)頁(yè)功能正常使用,在第一次轉(zhuǎn)碼后的頁(yè)面中該元素被點(diǎn)擊時(shí),瀏覽器向服務(wù)器發(fā)送包括網(wǎng)頁(yè)信息的網(wǎng)頁(yè)請(qǐng)求,其中,網(wǎng)頁(yè)信息包括元素在頁(yè)面的原始網(wǎng)頁(yè)中的位置、頁(yè)面的原始網(wǎng)頁(yè)的統(tǒng)一資源定位符。
[0043]其中,該元素包括但不限于:具有onclick屬性的元素、或具有href屬性且以“javascript: ”開(kāi)頭的元素。
[0044]其中,網(wǎng)頁(yè)信息是服務(wù)器在對(duì)原始網(wǎng)頁(yè)進(jìn)行第一次轉(zhuǎn)碼的過(guò)程中,監(jiān)測(cè)到需要用戶點(diǎn)擊以執(zhí)行JavaScript的元素時(shí)生成的。即當(dāng)服務(wù)器在對(duì)原始網(wǎng)頁(yè)進(jìn)行第一次轉(zhuǎn)碼的時(shí)候,如果監(jiān)測(cè)到需要用戶點(diǎn)擊以執(zhí)行JavaScript的元素,則生成網(wǎng)頁(yè)信息,該網(wǎng)頁(yè)信息包括元素在頁(yè)面的原始網(wǎng)頁(yè)中的位置、頁(yè)面的原始網(wǎng)頁(yè)的統(tǒng)一資源定位符。當(dāng)服務(wù)器將第一次轉(zhuǎn)碼后的頁(yè)面發(fā)送給瀏覽器時(shí),也攜帶該網(wǎng)頁(yè)信息。當(dāng)元素被點(diǎn)擊時(shí),可以首先生成包括網(wǎng)頁(yè)信息的網(wǎng)頁(yè)請(qǐng)求。
[0045]步驟S202:接收服務(wù)器響應(yīng)網(wǎng)頁(yè)請(qǐng)求而返回的第二次轉(zhuǎn)碼后的頁(yè)面,其中,第二次轉(zhuǎn)碼后的頁(yè)面是服務(wù)器根據(jù)統(tǒng)一資源定位符加載頁(yè)面的原始網(wǎng)頁(yè),以及根據(jù)位置在原始網(wǎng)頁(yè)中定位元素,產(chǎn)生對(duì)元素的點(diǎn)擊事件以執(zhí)行JavaScript得到對(duì)應(yīng)網(wǎng)頁(yè),以及將對(duì)應(yīng)網(wǎng)頁(yè)進(jìn)行轉(zhuǎn)碼得到的。
[0046]統(tǒng)一資源定位符(Uniform Resource Locator,簡(jiǎn)寫為URL)是對(duì)可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問(wèn)方法的一種簡(jiǎn)潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址,互聯(lián)網(wǎng)上的每個(gè)文件都有一個(gè)唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它。
[0047]當(dāng)服務(wù)器接收到瀏覽器發(fā)送的網(wǎng)頁(yè)請(qǐng)求后,由于網(wǎng)頁(yè)請(qǐng)求中包括網(wǎng)頁(yè)信息,網(wǎng)頁(yè)信息包括元素在頁(yè)面的原始網(wǎng)頁(yè)中的位置、頁(yè)面的原始網(wǎng)頁(yè)的統(tǒng)一資源定位符,服務(wù)器根據(jù)統(tǒng)一資源定位符加載頁(yè)面的原始網(wǎng)頁(yè),以及根據(jù)位置在原始網(wǎng)頁(yè)中定位元素,并產(chǎn)生對(duì)元素的點(diǎn)擊事件以執(zhí)行JavaScript得到對(duì)應(yīng)網(wǎng)頁(yè),將對(duì)應(yīng)網(wǎng)頁(yè)進(jìn)行第二次轉(zhuǎn)碼。然后,月艮務(wù)器將第二次轉(zhuǎn)碼后的頁(yè)面返回給瀏覽器,因此,瀏覽器接收服務(wù)器響應(yīng)網(wǎng)頁(yè)請(qǐng)求而返回的第二次轉(zhuǎn)碼后的頁(yè)面。
[0048]其中,元素在原始網(wǎng)頁(yè)中的位置以XPath語(yǔ)言標(biāo)記。
[0049]XPath是一門在可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language,簡(jiǎn)寫為XML)文檔中查找信息的標(biāo)記語(yǔ)言,用于在XML文檔中通過(guò)元素和屬性進(jìn)行導(dǎo)航。當(dāng)然,元素在原始網(wǎng)頁(yè)中的位置還可以是用其它的標(biāo)記語(yǔ)言進(jìn)行標(biāo)記的,例如:標(biāo)準(zhǔn)通用置標(biāo)語(yǔ)言、超文本標(biāo)記語(yǔ)言、可延伸超文件標(biāo)記語(yǔ)言等等。
[0050]步驟S203:顯示第二次轉(zhuǎn)碼后的頁(yè)面。
[0051]本發(fā)明實(shí)施方式當(dāng)?shù)谝淮无D(zhuǎn)碼后的頁(yè)面中需用戶點(diǎn)擊以執(zhí)行JavaScript的元素被點(diǎn)擊,則瀏覽器向服務(wù)器發(fā)送包括網(wǎng)頁(yè)信息的網(wǎng)頁(yè)請(qǐng)求,其中,網(wǎng)頁(yè)信息包括元素在頁(yè)面的原始網(wǎng)頁(yè)中的位置、頁(yè)面的原始網(wǎng)頁(yè)的統(tǒng)一資源定位符;接收服務(wù)器響應(yīng)網(wǎng)頁(yè)請(qǐng)求而返回的第二次轉(zhuǎn)碼后的頁(yè)面,其中,第二次轉(zhuǎn)碼后的頁(yè)面是服務(wù)器根據(jù)統(tǒng)一資