本發(fā)明涉及互聯(lián)網(wǎng),具體而言,涉及一種頁面內(nèi)容的定位方法、裝置、存儲介質(zhì)及電子設(shè)備。
背景技術(shù):
1、為了提高web頁面的用戶友好性,許多web服務(wù)在頁面中設(shè)置了錨點(diǎn)和相應(yīng)的鏈接/按鈕,允許用戶通過點(diǎn)擊這些鏈接/按鈕將頁面快速滾動到指定位置,這種功能通常稱為錨點(diǎn)定位。常見的錨點(diǎn)定位包括長頁面中的“回到頂部”和頁面內(nèi)的菜單。然而,這些功能的錨點(diǎn)設(shè)置方法是為特定的元素節(jié)點(diǎn)添加屬性,即錨點(diǎn)定位精度為元素節(jié)點(diǎn),無法精確定位到特定文本字符串。
2、為了提升錨點(diǎn)定位的精度,現(xiàn)有技術(shù)中采用對字符包裹標(biāo)簽的方式,在超文本標(biāo)記語言(hyper?text?markup?language,html)編碼階段,將原本完整的文本節(jié)點(diǎn)切割成多個(gè),將需要被定位的目標(biāo)字符串包裹到標(biāo)簽中,實(shí)現(xiàn)目標(biāo)字符的快速定位,這種方法會破壞web頁面的html結(jié)構(gòu),需要創(chuàng)建更多的元素節(jié)點(diǎn)和文本節(jié)點(diǎn),使文檔對象模型(documentobject?model,dom)樹變得復(fù)雜,過多的節(jié)點(diǎn)創(chuàng)建會降低頁面加載的速度,造成卡頓。
3、針對上述的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供了一種頁面內(nèi)容的定位方法、裝置、存儲介質(zhì)及電子設(shè)備,以至少解決現(xiàn)有技術(shù)中采用對字符包裹標(biāo)簽的方式實(shí)現(xiàn)web頁面的目標(biāo)字符定位,存在代碼結(jié)構(gòu)復(fù)雜導(dǎo)致頁面加載的速度較低的技術(shù)問題。
2、根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種頁面內(nèi)容的定位方法,包括:響應(yīng)目標(biāo)對象對web頁面中目標(biāo)定位組件的點(diǎn)擊操作,獲取目標(biāo)定位組件對應(yīng)的預(yù)設(shè)id信息和預(yù)設(shè)零寬字符串;依據(jù)預(yù)設(shè)id信息和預(yù)設(shè)零寬字符串確定目標(biāo)文本節(jié)點(diǎn),其中,目標(biāo)文本節(jié)點(diǎn)的文本字符串中包含有待定位的目標(biāo)字符串,以及與預(yù)設(shè)零寬字符串相同的零寬字符串;確定目標(biāo)字符串在目標(biāo)文本節(jié)點(diǎn)的文本字符串中的位置信息,并依據(jù)位置信息確定目標(biāo)字符串在web頁面的坐標(biāo)信息;依據(jù)目標(biāo)字符串在web頁面的坐標(biāo)信息,將目標(biāo)字符串顯示在web頁面的可視區(qū)域內(nèi)。
3、進(jìn)一步地,依據(jù)預(yù)設(shè)id信息和預(yù)設(shè)零寬字符串確定目標(biāo)文本節(jié)點(diǎn),包括:依據(jù)預(yù)設(shè)id信息,在web頁面對應(yīng)的dom樹中確定目標(biāo)元素節(jié)點(diǎn),其中,目標(biāo)元素節(jié)點(diǎn)為具有與預(yù)設(shè)id信息相同的id屬性的元素節(jié)點(diǎn);依據(jù)預(yù)設(shè)零寬字符串,從目標(biāo)元素節(jié)點(diǎn)的多個(gè)子節(jié)點(diǎn)中確定目標(biāo)文本節(jié)點(diǎn)。
4、進(jìn)一步地,依據(jù)預(yù)設(shè)零寬字符串,從目標(biāo)元素節(jié)點(diǎn)的多個(gè)子節(jié)點(diǎn)中確定目標(biāo)文本節(jié)點(diǎn),包括:分別對預(yù)設(shè)零寬字符串與每個(gè)子節(jié)點(diǎn)的節(jié)點(diǎn)屬性中存儲的文本字符串進(jìn)行比對;將文本字符串包含有與預(yù)設(shè)零寬字符串相同的零寬字符串的子節(jié)點(diǎn)作為目標(biāo)文本節(jié)點(diǎn)。
5、進(jìn)一步地,確定目標(biāo)字符串在目標(biāo)文本節(jié)點(diǎn)的文本字符串中的位置信息,包括:依據(jù)與預(yù)設(shè)零寬字符串相同的零寬字符串在目標(biāo)文本節(jié)點(diǎn)的文本字符串中的索引信息和零寬字符串的長度信息,確定目標(biāo)字符串在目標(biāo)文本節(jié)點(diǎn)的文本字符串中的索引信息;對零寬字符串進(jìn)行反編碼解析處理,得到目標(biāo)字符串的長度信息;依據(jù)目標(biāo)字符串在目標(biāo)文本節(jié)點(diǎn)的文本字符串中的索引信息和目標(biāo)字符串的長度信息,組成位置信息。
6、進(jìn)一步地,依據(jù)目標(biāo)字符串在web頁面的坐標(biāo)信息,將目標(biāo)字符串顯示在web頁面的可視區(qū)域內(nèi),包括:依據(jù)坐標(biāo)信息確定目標(biāo)字符串在web頁面中對應(yīng)的矩形區(qū)域;確定矩形區(qū)域與可視區(qū)域的位置關(guān)系,并基于位置關(guān)系和web頁面的滾動條的當(dāng)前位置信息,確定滾動條的目標(biāo)偏移量;依據(jù)目標(biāo)偏移量調(diào)整滾動條的位置,以將目標(biāo)字符串顯示在web頁面的可視區(qū)域內(nèi)。
7、進(jìn)一步地,在響應(yīng)目標(biāo)對象對web頁面中目標(biāo)定位組件的點(diǎn)擊操作之前,該方法還包括:在web頁面對應(yīng)的html文件中,基于預(yù)設(shè)id信息配置目標(biāo)字符串所在的標(biāo)簽的id屬性,并在目標(biāo)字符串之前,插入預(yù)設(shè)零寬字符串,以實(shí)現(xiàn)對web頁面的錨點(diǎn)設(shè)置。
8、進(jìn)一步地,通過以下步驟得到預(yù)設(shè)零寬字符串:依據(jù)目標(biāo)字符串所在的標(biāo)簽的id屬性、當(dāng)前元素節(jié)點(diǎn)下目標(biāo)字符串的索引以及目標(biāo)字符串的長度,構(gòu)建源字符串;將源字符串中的每個(gè)字符轉(zhuǎn)化為二進(jìn)制字符串,得到源字符串對應(yīng)的多個(gè)二進(jìn)制字符串;對于每個(gè)二進(jìn)制字符串,基于第一零寬字符替換二進(jìn)制字符串中的第一數(shù)字,基于第二零寬字符替換二進(jìn)制字符串中的第二數(shù)字,得到每個(gè)二進(jìn)制字符串對應(yīng)的零寬字符串;依據(jù)第三零寬字符將每個(gè)二進(jìn)制字符串對應(yīng)的零寬字符串進(jìn)行連接,得到預(yù)設(shè)零寬字符串。
9、根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種頁面內(nèi)容的定位裝置,包括:獲取模塊,用于響應(yīng)目標(biāo)對象對web頁面中目標(biāo)定位組件的點(diǎn)擊操作,獲取目標(biāo)定位組件對應(yīng)的預(yù)設(shè)id信息和預(yù)設(shè)零寬字符串;第一確定模塊,用于依據(jù)預(yù)設(shè)id信息和預(yù)設(shè)零寬字符串確定目標(biāo)文本節(jié)點(diǎn),其中,目標(biāo)文本節(jié)點(diǎn)的文本字符串中包含有待定位的目標(biāo)字符串,以及與預(yù)設(shè)零寬字符串相同的零寬字符串;第二確定模塊,用于確定目標(biāo)字符串在目標(biāo)文本節(jié)點(diǎn)的文本字符串中的位置信息,并依據(jù)位置信息確定目標(biāo)字符串在web頁面的坐標(biāo)信息;處理模塊,用于依據(jù)目標(biāo)字符串在web頁面的坐標(biāo)信息,將目標(biāo)字符串顯示在web頁面的可視區(qū)域內(nèi)。
10、根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的頁面內(nèi)容的定位方法。
11、根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),該計(jì)算機(jī)可讀存儲介質(zhì)中存儲有計(jì)算機(jī)程序,其中,計(jì)算機(jī)程序被設(shè)置為運(yùn)行時(shí)執(zhí)行上述的頁面內(nèi)容的定位方法。
12、根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種電子設(shè)備,該電子設(shè)備包括一個(gè)或多個(gè)處理器;存儲器,用于存儲一個(gè)或多個(gè)程序,當(dāng)一個(gè)或多個(gè)程序被一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得一個(gè)或多個(gè)處理器實(shí)現(xiàn)用于運(yùn)行程序,其中,程序被設(shè)置為運(yùn)行時(shí)執(zhí)行上述的頁面內(nèi)容的定位方法。
13、在本發(fā)明實(shí)施例中,采用利用零寬字符設(shè)置錨點(diǎn)的方式,首先響應(yīng)目標(biāo)對象對web頁面中目標(biāo)定位組件的點(diǎn)擊操作,獲取目標(biāo)定位組件對應(yīng)的預(yù)設(shè)id信息和預(yù)設(shè)零寬字符串,然后依據(jù)預(yù)設(shè)id信息和預(yù)設(shè)零寬字符串確定目標(biāo)文本節(jié)點(diǎn),其中,目標(biāo)文本節(jié)點(diǎn)的文本字符串中包含有待定位的目標(biāo)字符串,以及與預(yù)設(shè)零寬字符串相同的零寬字符串,然后確定目標(biāo)字符串在目標(biāo)文本節(jié)點(diǎn)的文本字符串中的位置信息,并依據(jù)位置信息確定目標(biāo)字符串在web頁面的坐標(biāo)信息,然后依據(jù)目標(biāo)字符串在web頁面的坐標(biāo)信息,將目標(biāo)字符串顯示在web頁面的可視區(qū)域內(nèi)。
14、在上述過程中,利用零寬字符編碼技術(shù)在文本節(jié)點(diǎn)中設(shè)置錨點(diǎn),能夠依據(jù)預(yù)設(shè)id信息和預(yù)設(shè)零寬字符串確定目標(biāo)文本節(jié)點(diǎn),從而能夠?qū)⒛繕?biāo)字符串顯示在web頁面的可視區(qū)域內(nèi),實(shí)現(xiàn)在不改變頁面層級結(jié)構(gòu)的基礎(chǔ)上,精準(zhǔn)定位到web頁面中的每一個(gè)字符,給用戶更好的交互體驗(yàn)。
15、由此可見,通過本發(fā)明的技術(shù)方案,達(dá)到了在不改變web頁面原始html的結(jié)構(gòu)和頁面加載速度的基礎(chǔ)上,實(shí)現(xiàn)精確到特定字符串的快速定位的目的,從而實(shí)現(xiàn)了將頁面內(nèi)快速定位的精度從元素節(jié)點(diǎn)級別提升到了字符的級別的同時(shí),不會影響頁面原有的dom結(jié)構(gòu),不會影響頁面的加載速度的技術(shù)效果,進(jìn)而解決了現(xiàn)有技術(shù)中采用對字符包裹標(biāo)簽的方式實(shí)現(xiàn)web頁面的目標(biāo)字符定位,存在代碼結(jié)構(gòu)復(fù)雜導(dǎo)致頁面加載的速度較低的技術(shù)問題。