亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

網(wǎng)頁坐標(biāo)獲取方法和裝置制造方法

文檔序號:6492882閱讀:625來源:國知局
網(wǎng)頁坐標(biāo)獲取方法和裝置制造方法
【專利摘要】本申請?zhí)峁┝司W(wǎng)頁坐標(biāo)獲取方法和裝置。其中,該方法包括:對目標(biāo)輸入框執(zhí)行用于消除瀏覽器排版差異的排版樣式處理;創(chuàng)建一個與目標(biāo)輸入框?qū)?yīng)的副本層,設(shè)置所述副本層對用戶不可見,并依據(jù)所述目標(biāo)輸入框的排版樣式指定所述副本層的排版樣式;判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,是則將與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層,否則將針對目標(biāo)標(biāo)識構(gòu)造的定位元素寫入至副本層;依據(jù)所述目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo)計算所述目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)。采用本發(fā)明,實現(xiàn)了在兼容目前主流瀏覽器的前提下準(zhǔn)確獲取輸入框內(nèi)字符或光標(biāo)的網(wǎng)頁坐標(biāo)。
【專利說明】網(wǎng)頁坐標(biāo)獲取方法和裝置
【技術(shù)領(lǐng)域】
[0001]本申請涉及互聯(lián)網(wǎng)技術(shù),特別涉及網(wǎng)頁坐標(biāo)方法和裝置。
【背景技術(shù)】
[0002]在互聯(lián)網(wǎng)應(yīng)用中,獲取輸入框內(nèi)字符和/或光標(biāo)的網(wǎng)頁坐標(biāo)是非常重要的。比如,在微博應(yīng)用中,當(dāng)在輸入框內(nèi)輸入@時,在光標(biāo)附近就顯示一個下拉框,要定位這個下拉框,就需要獲取輸入框內(nèi)光標(biāo)的網(wǎng)頁坐標(biāo),或者距離光標(biāo)最近的字符的網(wǎng)頁坐標(biāo)。
[0003]目前,獲取輸入框內(nèi)字符或光標(biāo)的網(wǎng)頁坐標(biāo)主要通過以下兩種方法實現(xiàn),以獲取字符的網(wǎng)頁坐標(biāo)為例,獲取光標(biāo)的網(wǎng)頁坐標(biāo)原理類似:
[0004]方法1:其通過模擬瀏覽器的排版樣式實現(xiàn),具體為:在瀏覽器的當(dāng)前排版中先獲取目標(biāo)輸入框的網(wǎng)頁坐標(biāo),再確定目標(biāo)字符在目標(biāo)輸入框的位置,比如在目標(biāo)輸入框的M行N列,然后獲取以下參數(shù):目標(biāo)輸入框內(nèi)字符的大小、行高、字符間距和輸入框的左右邊距,最后根據(jù)獲取的各個參數(shù)計算目標(biāo)字符的網(wǎng)頁坐標(biāo)。
[0005]方法2:該方法僅限于IE瀏覽器,其主要是利用IE瀏覽器中選區(qū)(TextRange)的上偏移(offsetTop)和左偏移(OffsetLeft)屬性,具體為:創(chuàng)建一個選區(qū)(記為R),在目標(biāo)輸入框中選取目標(biāo)字符的前一個字符并記錄至R內(nèi),然后獲取目標(biāo)輸入框的網(wǎng)頁坐標(biāo)(X0,Y0)、R 的 offsetTop (記為 R.0ffsetTop)、R 白勺寬度(R.boundingwidth)、R 的 offsetLeft(記為R.0ffsetLeft),之后采用以下公式計算目標(biāo)字符的網(wǎng)頁坐標(biāo)(X,Y):
[0006]X=X0+R.0ffsetLeft+R.boundingwidth ;
[0007]Y=Y0+R.0ffsetTop。
[0008]從上面描述看出,上述的方法I或方法2均能獲取輸入框內(nèi)字符或光標(biāo)的網(wǎng)頁坐標(biāo),但是,方法I是通過模擬瀏覽器的排版樣式實現(xiàn),而由于不同瀏覽器其具有不同的排版布局,比如存在一些細(xì)節(jié)上的差異,這會導(dǎo)致不同瀏覽器最終計算的目標(biāo)字符的網(wǎng)頁坐標(biāo)不準(zhǔn)確;并且,方法I還受到滾動條的影響。而方法2雖然能解決方法I的問題,但僅限于IE瀏覽器,應(yīng)用范圍比較局限。

【發(fā)明內(nèi)容】

[0009]本申請?zhí)峁┝司W(wǎng)頁坐標(biāo)獲取方法和裝置,以實現(xiàn)在兼容目前主流瀏覽器的前提下準(zhǔn)確獲取輸入框內(nèi)字符或光標(biāo)的網(wǎng)頁坐標(biāo)。
[0010]本申請?zhí)峁┑募夹g(shù)方案包括:
[0011]一種網(wǎng)頁坐標(biāo)獲取方法,包括:
[0012]對目標(biāo)輸入框執(zhí)行用于消除瀏覽器排版差異的排版樣式處理;
[0013]創(chuàng)建一個與目標(biāo)輸入框?qū)?yīng)的副本層,設(shè)置所述副本層對用戶不可見,并依據(jù)所述目標(biāo)輸入框的排版樣式指定所述副本層的排版樣式;
[0014]判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,如果是,將與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層,所述定位元素在所述副本層中緊鄰所述關(guān)聯(lián)字符之后,如果否,將針對目標(biāo)標(biāo)識構(gòu)造的定位元素寫入至副本層;
[0015]依據(jù)所述目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo)計算所述目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)。
[0016]—種應(yīng)用于網(wǎng)頁坐標(biāo)獲取的裝置,包括:
[0017]處理單元,用于對目標(biāo)輸入框執(zhí)行用于消除瀏覽器排版差異的排版樣式處理;
[0018]創(chuàng)建單元,用于創(chuàng)建一個與目標(biāo)輸入框?qū)?yīng)的副本層,設(shè)置所述副本層對用戶不可見,并依據(jù)所述目標(biāo)輸入框的排版樣式指定所述副本層的排版樣式;
[0019]寫入單元,用于判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,如果是,將與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層,所述定位元素在所述副本層中緊鄰所述關(guān)聯(lián)字符之后,如果否,將針對目標(biāo)標(biāo)識構(gòu)造的定位元素寫入至副本層;
[0020]計算單元,用于依據(jù)所述目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo)計算所述目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)。
[0021]由以上技術(shù)方案可以看出,本發(fā)明對目標(biāo)輸入框執(zhí)行用于消除瀏覽器排版差異的排版樣式處理,這樣,就不會出現(xiàn)針對不同瀏覽器計算的目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)不同的問題,并且,本發(fā)明在獲取目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識比如字符或光標(biāo)的網(wǎng)頁坐標(biāo)時,依賴于瀏覽器繪制的副本層、目標(biāo)輸入框、以及定位元素的網(wǎng)頁坐標(biāo),完全不受滾動條的影響,保證輸入框內(nèi)目標(biāo)標(biāo)識比如字符或光標(biāo)的網(wǎng)頁坐標(biāo)計算結(jié)果準(zhǔn)確。
【專利附圖】

【附圖說明】
[0022]圖1為本發(fā)明實施例提供的方法流程圖;
[0023]圖2為本發(fā)明實施例提供的指定副本層排版樣式的流程圖;
[0024]圖3為本發(fā)明實施例提供的步驟104實現(xiàn)流程圖;
[0025]圖4為本發(fā)明實施例提供的步驟106實現(xiàn)流程圖;
[0026]圖5為本發(fā)明實施例提供的裝置結(jié)構(gòu)圖。
【具體實施方式】
[0027]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進(jìn)行詳細(xì)描述。
[0028]參見圖1,圖1為本發(fā)明實施例提供的方法流程圖。如圖1所示,該流程可包括以下步驟:
[0029]步驟101,對目標(biāo)輸入框執(zhí)行用于消除瀏覽器排版差異的排版樣式處理。
[0030]本步驟101的目的在于消除瀏覽器對目標(biāo)輸入框內(nèi)文字排版的差異。其中,所述排版樣式處理至少包括:為所述目標(biāo)輸入框配置單詞換行(word-wrap)屬性和文本空白符處理(white-space)屬性,并針對配置的word-wrap屬性和white-space屬性進(jìn)行相應(yīng)設(shè)置。下面對如何設(shè)置word-wrap屬性和white-space屬性進(jìn)行描述:
[0031]wordirap屬性是用于控制換行的,用來標(biāo)明是否允許瀏覽器在單詞內(nèi)進(jìn)行換行。當(dāng)一個單詞太長時,如果不配置這個word-wrap屬性,或者配置了該word-wrap屬性,但將其設(shè)置為默認(rèn)值(normal),瀏覽器就不會在這個單詞內(nèi)部換行,這樣的后果是目標(biāo)輸入框會被撐開或者內(nèi)部的單詞溢出邊界導(dǎo)致部分字符不可見。而如果設(shè)置這個word-wrap屬性為第一屬性值比如break-word,那么這種情況下瀏覽器會強(qiáng)制這個很長的單詞折行顯示,基于此,本發(fā)明就針對word-wrap屬性設(shè)置為第一屬性值比如break_word,通過該設(shè)置,能夠保證目標(biāo)輸入框在任何情況下,其被顯示的寬度都能和自身的排版樣式寬度一致,同時目標(biāo)輸入框內(nèi)部的字符也不會溢出邊界。
[0032]white-space屬性用于設(shè)置文本空白符的處理規(guī)則,其中,該處理規(guī)則至少包括:是否合并空白符、是否保留換行符、是否允許自動換行。目前,大部分瀏覽器默認(rèn)white-space屬性為第二屬性值比如pre-warp,基于此,為保證本發(fā)明的兼容性,本發(fā)明中,針對white-space屬性設(shè)置為第二屬性值比如pre-warp,用于明確的告訴各瀏覽器,針對目標(biāo)輸入框都按照pre-wrap對應(yīng)的處理規(guī)則來處理文本空白符。其中,pre-wrap對應(yīng)的處理規(guī)則用于表示:保留空白符、保留換行符、以及允許自動換行。
[0033]步驟102,創(chuàng)建一個與目標(biāo)輸入框?qū)?yīng)的副本層,設(shè)置所述副本層對用戶不可見,以使得用戶在當(dāng)前瀏覽區(qū)域看不到這個副本層,并依據(jù)所述目標(biāo)輸入框的排版樣式指定所述副本層的排版樣式。
[0034]本步驟102中,設(shè)置副本層對用戶不可見具體可通過設(shè)置副本層的位置參數(shù)即垂直層級(z-1ndex)、透明度(opacity)、相對父節(jié)點的水平位置(Left)和垂直位置(Top)來實現(xiàn),下面進(jìn)行描述:
[0035]設(shè)置所述副本層的z-1ndex為比較低的層級,比如取值為-9999,其中,z_index越大,越位于頂部,越小,越位于底部,在網(wǎng)頁正常情況下,z-1ndex都不會設(shè)置成-9999這么低的層級,而本發(fā)明將副本層的z-1ndex設(shè)置為-9999,基本可以保證這個副本層中的內(nèi)容會被完全擋住,這樣用戶不但看不見副本層中的內(nèi)容,而且也無法通過鼠標(biāo)觸發(fā)副本層中的內(nèi)容。
[0036]設(shè)置所述副本層的opacity為用于表示完全透明的設(shè)定值。作為本發(fā)明的一個實施例,設(shè)定值可為O。這里設(shè)置副本層的opacity完全透明,目的是讓用戶看不到副本層。
[0037]設(shè)置Left為第一設(shè)定像素值,其中,該第一設(shè)定像素值用于表示副本層相對父節(jié)點的水平距離,優(yōu)選地,本發(fā)明中,該第一設(shè)定像素值可為-9999像素。在應(yīng)用中,網(wǎng)頁的元素都是采用樹形結(jié)構(gòu)組織的,副本層作為網(wǎng)頁的一個元素,其也是組織在樹形結(jié)構(gòu)上的,具有自己的父節(jié)點。當(dāng)副本層與父節(jié)點水平相距9999像素時,該9999像素比較大,超出屏幕的可視范圍了,所以都用戶不可見。
[0038]設(shè)置Top為第二設(shè)定像素值。其中,該第二設(shè)定像素值用于表示副本層相對父節(jié)點的垂直距離,優(yōu)選地,本發(fā)明中,該第二設(shè)定像素值可為-9999像素。在應(yīng)用中,網(wǎng)頁的元素都是采用樹形結(jié)構(gòu)組織的,副本層作為網(wǎng)頁的一個元素,其也是組織在樹形結(jié)構(gòu)上的,具有自己的父節(jié)點。當(dāng)副本層與父節(jié)點垂直相距9999像素時,該9999像素比較大,超出屏幕的可視范圍了,所以都用戶不可見。
[0039]至此,通過上述四個設(shè)置能夠保證創(chuàng)建的與目標(biāo)輸入框?qū)?yīng)的副本層對用戶不可見。需要說明的是,本發(fā)明中,副本層的位置可不限定,也可進(jìn)行限定,其中,在進(jìn)行限定時,一種較佳的實施方式為:將副本層定位至與目標(biāo)輸入框相同的位置,其可通過以下定位方式實現(xiàn):position:fixecL[0040]另外,本步驟102中,依據(jù)所述目標(biāo)輸入框的排版樣式指定所述副本層的排版樣式可通過下文的圖2所示流程實現(xiàn)。通過步驟102能夠保證副本層和目標(biāo)輸入框的排版樣
式一致。
[0041]步驟103,判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,如果是,執(zhí)行步驟104,如果否,執(zhí)行步驟105。
[0042]本發(fā)明中,目標(biāo)標(biāo)識可為目標(biāo)輸入框內(nèi)的字符(簡稱目標(biāo)字符)或者光標(biāo)(簡稱目標(biāo)光標(biāo))。
[0043]其中,當(dāng)目標(biāo)標(biāo)識為目標(biāo)字符時,步驟103中判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:判斷所述目標(biāo)輸入框內(nèi)的目標(biāo)標(biāo)識之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符。相應(yīng)地,可將目標(biāo)輸入框內(nèi)在所述目標(biāo)標(biāo)識之前的所有字符作為所述與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符。
[0044]而目標(biāo)標(biāo)識為目標(biāo)光標(biāo)時,步驟103中判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符具體可通過以下兩種方式中的任一方式實現(xiàn):
[0045]方式1:
[0046]本方式I下,判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:判斷所述目標(biāo)輸入框內(nèi)的目標(biāo)標(biāo)識之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符。
[0047]相應(yīng)地,本方式I下,將目標(biāo)輸入框內(nèi)在所述目標(biāo)標(biāo)識之前的所有字符確定為與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符。
[0048]至此,完成方式I的描述。基于方式I的描述可以看出,方式I是將目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識之前的所有字符均作為與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符。
[0049]方式2:
[0050]本方式2下,所述判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:識別出所述目標(biāo)輸入框內(nèi)在目標(biāo)標(biāo)識之前、且緊鄰所述目標(biāo)標(biāo)識的字符,判斷目標(biāo)輸入框內(nèi)該識別出的字符之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符;
[0051]相應(yīng)地,本方式2下,將目標(biāo)輸入框內(nèi)在所述識別出的字符之前的所有字符確定為與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符。
[0052]基于方式2的描述,可以看出,本方式2與方式I不同,相比于方式1,本方式2是將目標(biāo)標(biāo)識之前除上述識別出的字符之外的其他字符作為目標(biāo)標(biāo)識相關(guān)聯(lián)的字符。
[0053]至此,完成方式2的描述。
[0054]步驟104,將與目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層,所述定位元素在所述副本層中緊鄰所述關(guān)聯(lián)字符之后。之后執(zhí)行步驟106。
[0055]本步驟104如何將與目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層具體可參見圖3所示流程。這里暫不贅述。
[0056]其中,本發(fā)明中,當(dāng)目標(biāo)標(biāo)識為目標(biāo)字符時,所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素可為設(shè)定的輔助定位元素,所述設(shè)定的輔助定位元素的寬度小于設(shè)定寬度比如I像素,對網(wǎng)頁坐標(biāo)的計算無影響;或者,所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為通過網(wǎng)頁標(biāo)簽比如span封裝的作為目標(biāo)標(biāo)識的字符。
[0057]而當(dāng)目標(biāo)標(biāo)識為目標(biāo)光標(biāo)時,如果目標(biāo)標(biāo)識的關(guān)聯(lián)字符是通過方式I確定的,則所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為設(shè)定的輔助定位元素,而如果目標(biāo)標(biāo)識的關(guān)聯(lián)字符是通過方式2確定的,則所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為通過網(wǎng)頁標(biāo)簽比如span封裝的方式2內(nèi)識別出的字符(該識別出的字符為目標(biāo)輸入框內(nèi)在目標(biāo)標(biāo)識之前、且緊鄰所述目標(biāo)標(biāo)識的字符)。
[0058]另外,本發(fā)明中,由于通過步驟102能夠保證目標(biāo)輸入框和副本層的排版樣式一致,而本步驟104將與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符寫入至副本層,能夠保證該關(guān)聯(lián)字符在目標(biāo)輸入框和副本層的排版樣式一致。并且,本發(fā)明還在副本層內(nèi)將針對目標(biāo)標(biāo)識構(gòu)造的定位元素寫在目標(biāo)標(biāo)識的關(guān)聯(lián)字符之后,這樣該定位元素在副本層內(nèi)的網(wǎng)頁坐標(biāo)就相當(dāng)于目標(biāo)標(biāo)識在目標(biāo)輸入框內(nèi)的網(wǎng)頁坐標(biāo),從而將目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)計算轉(zhuǎn)換成副本層內(nèi)定位元素的網(wǎng)頁坐標(biāo)計算。
[0059]步驟105,將針對目標(biāo)標(biāo)識構(gòu)造的定位元素寫入至副本層。之后執(zhí)行步驟106。
[0060]本步驟105是在目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符下執(zhí)行的?;谏厦鎸﹃P(guān)聯(lián)字符的描述可以知道,比如當(dāng)目標(biāo)標(biāo)識為目標(biāo)字符時,目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,意味著目標(biāo)標(biāo)識為目標(biāo)輸入框內(nèi)首個字符,由于通過步驟102能夠保證目標(biāo)輸入框和副本層的排版樣式一致,而本步驟105將針對目標(biāo)標(biāo)識構(gòu)造的定位元素寫入至副本層后,該定位元素在副本層內(nèi)的網(wǎng)頁坐標(biāo)就相當(dāng)于目標(biāo)標(biāo)識在目標(biāo)輸入框內(nèi)的網(wǎng)頁坐標(biāo),從而將目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)計算轉(zhuǎn)換成副本層內(nèi)定位元素的網(wǎng)頁坐標(biāo)計算。同樣,當(dāng)目標(biāo)標(biāo)識為目標(biāo)光標(biāo)時,原理類似,不再贅述。
[0061]步驟106,依據(jù)所述目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo)計算所述目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)。
[0062]在一個網(wǎng)頁內(nèi),大部分元素,其是由瀏覽器繪制的,瀏覽器會提供一個標(biāo)準(zhǔn)的接口來獲取這些元素的網(wǎng)頁坐標(biāo)。本發(fā)明中的目標(biāo)輸入框、副本層、以及定位元素均是屬于這些元素,因此,本步驟106可通過調(diào)用瀏覽器提供的接口來獲取目標(biāo)輸入框、副本層、定位元素的網(wǎng)頁坐標(biāo)。
[0063]但是,在一個網(wǎng)頁內(nèi),也有一些元素,其并非為瀏覽器繪制,而是通過調(diào)用控件實現(xiàn)的,瀏覽器沒有為這些元素提供任何接口來獲取網(wǎng)頁坐標(biāo)。目標(biāo)輸入框內(nèi)作為目標(biāo)標(biāo)識的目標(biāo)字符、目標(biāo)光標(biāo)就屬于這些元素。為了獲取這些元素的網(wǎng)頁坐標(biāo),需要依賴于目標(biāo)輸入框、副本層、定位元素的網(wǎng)頁坐標(biāo),圖4示出了如何計算目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)流程。
[0064]至此,完成圖1所示流程。
[0065]從圖1所示流程可以看出,本發(fā)明對目標(biāo)輸入框執(zhí)行用于消除瀏覽器排版差異的排版樣式處理,這樣,就不會出現(xiàn)針對不同瀏覽器計算的目標(biāo)標(biāo)識網(wǎng)頁坐標(biāo)或光標(biāo)網(wǎng)頁坐標(biāo)不同的問題,并且,本發(fā)明在獲取目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)時,依賴于瀏覽器繪制的副本層、目標(biāo)輸入框、以及定位元素的網(wǎng)頁坐標(biāo),完全不受滾動條的影響,保證目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)計算結(jié)果準(zhǔn)確。
[0066]下面對圖2所示流程進(jìn)行描述:
[0067]參見圖2,圖2為本發(fā)明實施例提供的指定副本層排版樣式的流程圖。如圖2所示,該流程可包括以下步驟:
[0068]步驟201,遍歷所述目標(biāo)輸入框的版本樣式屬性,將遍歷到的版本樣式屬性配置在所述副本層,并指定所述副本層配置的版本樣式屬性與所述目標(biāo)輸入框上相同的版本樣式屬性具有相同的屬性值。
[0069]基于步驟101的排版樣式處理描述,則執(zhí)行到本步驟201時,遍歷到的版本樣式屬性肯定包含word-wrap屬性和white-space屬性。同時,在一些應(yīng)用中,目標(biāo)輸入框本身還可能具有一些用于影響到排版的屬性,也可稱為排版樣式屬性,比如為以下幾種排版樣式屬性中的一個或多個:
[0070]設(shè)置元素左內(nèi)邊距(padding-left)屬性、設(shè)置元素上內(nèi)邊距(padding-top)屬性、設(shè)置元素下內(nèi)邊距(padding-bottom)屬性、設(shè)置元素右內(nèi)邊距(padding-right)屬性、設(shè)置元素左外內(nèi)邊距(margin-left)屬性、設(shè)置元素上外內(nèi)邊距(margin-top)屬性、設(shè)置元素下外內(nèi)邊距(margin-bottom)屬性、設(shè)置元素右外內(nèi)邊距(margin-right)屬性、設(shè)置元素左邊框的樣式(border-left-style)屬性、設(shè)置元素上邊框的樣式(border-top-style)屬性、設(shè)置兀素下邊框的樣式(border-bottom-style)屬性、設(shè)置兀素右邊框的樣式(border-right-style)屬性、設(shè)置元素左邊框的寬度(border-left_width)屬性、設(shè)置元素上邊框的寬度(border-top-width)屬性、設(shè)置元素下邊框的寬度(border-bottom-width)屬性、設(shè)置兀素右邊框的寬度(border-right-width)屬性、設(shè)置行高(line-height)屬性、設(shè)置元素輪廓的樣式,寬度,顏色(outline)屬性、設(shè)置元素的整體高度(height)屬性、設(shè)置元素內(nèi)部文字的字體名稱(font-family)屬性、設(shè)置元素內(nèi)部文字的字體大小(font-size)屬性、設(shè)置元素內(nèi)部文字的粗細(xì)(font-weight)屬性、設(shè)置元素內(nèi)部文字的小型大寫字母的字體(font-variant)屬性、設(shè)置元素內(nèi)部文字的字體風(fēng)格比如斜體(font-style)屬性。
[0071]基于此,本步驟201中,當(dāng)遍歷到一個目標(biāo)輸入框的版本樣式屬性,就在副本層上配置一個相同的版本樣式屬性,并指定所述副本層配置的版本樣式屬性與所述目標(biāo)輸入框上相同的版本樣式屬性具有相同的屬性值。以遍歷到一個目標(biāo)輸入框的版本樣式屬性為white-space屬性為例,則本步驟201就在副本層上配置white-space屬性,同時,指定副本層上配置的white-space屬性與目標(biāo)輸入框的white-space屬性具有相同的屬性值。通過步驟201,能夠?qū)崿F(xiàn)副本層的外觀樣式、排版樣式全部和目標(biāo)輸入框一樣。
[0072]步驟202,基于所述目標(biāo)輸入框的禁止溢出(overflow)特性,為所述副本層配置overflow屬性,并指定所述副本層的overflow屬性為第三屬性值比如隱藏(hidden),用于防止向副本層寫入的字符撐開副本層。
[0073]在目標(biāo)輸入框中,其中的字符是通過瀏覽器調(diào)用控件動態(tài)輸入的,瀏覽器通過目標(biāo)輸入框的word-wrap屬性能夠保證目標(biāo)輸入框不會被撐開,也能進(jìn)一步保證目標(biāo)輸入框內(nèi)的字符不會溢出。而相比之下,本發(fā)明的副本層,其是新創(chuàng)建的,其中的字符都是由瀏覽器寫入的,如果不設(shè)置overflow屬性,其在瀏覽器寫入字符時可能會出現(xiàn)寫入的字符撐開副本層,基于此,為保證副本層的外觀樣式、排版樣式全部和目標(biāo)輸入框一樣,相比于目標(biāo)輸入框,本發(fā)明還需要針對副本層額外增加一個排版樣式屬性配置,即配置overflow屬性,并指定所述副本層的overflow屬性為第三屬性值比如隱藏(hidden),用于防止向副本層寫入的字符撐開副本層。[0074]至此,完成圖2所示流程。通過圖2所示流程能夠保證副本層的外觀樣式、排版樣式全部和目標(biāo)輸入框一樣。
[0075]下面對圖3所示流程進(jìn)行描述:
[0076]參見圖3,圖3為本發(fā)明實施例提供的步驟104實現(xiàn)流程圖。如圖3所示,該流程可包括以下步驟:
[0077]步驟301,判斷所述與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符是否存在設(shè)定字符,如果是,執(zhí)行步驟302,否則,執(zhí)行步驟303。
[0078]本步驟301中,設(shè)定字符可為與網(wǎng)頁代碼相同或相近的字符,比如為:雙引號(〃),小于號(O,大于號(>),and符號(&),空格()。當(dāng)關(guān)聯(lián)字符中存在該設(shè)定字符時,為避免與網(wǎng)頁代碼的字符混淆,原樣顯示給用戶,就需要執(zhí)行步驟302,反之,就執(zhí)行步驟303。
[0079]步驟302,對該關(guān)聯(lián)字符中的設(shè)定字符進(jìn)行轉(zhuǎn)義處理,將處理后的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層,所述定位元素在所述副本層中緊鄰所述關(guān)聯(lián)字符之后。結(jié)束當(dāng)前寫入流程。
[0080]這里,對關(guān)聯(lián)字符中的設(shè)定字符進(jìn)行轉(zhuǎn)義處理,目的是將關(guān)聯(lián)字符中的設(shè)定字符轉(zhuǎn)換為其他與網(wǎng)頁代碼不相同的字符,避免與網(wǎng)頁代碼的字符混淆,保證原樣顯示給用戶。
[0081]假如關(guān)聯(lián)字符為:
[0082]<1>目標(biāo):達(dá)到〃1+1>2〃的效果
[0083]則若原樣把關(guān)聯(lián)字符放入一個頁面標(biāo)簽內(nèi)部,具體如下:
[0084]〈span id="test">〈l> 目標(biāo):達(dá)到 〃1+1>2"的效果〈/span〉;
[0085]瀏覽器分析上述頁面標(biāo)簽內(nèi)部的關(guān)聯(lián)字符時,就會錯亂,比如,不知道某個大于號到底對應(yīng)哪個小于號,同時,這些字符會被當(dāng)成頁面標(biāo)簽代碼被解析,而不是被呈現(xiàn)給用戶。而通過對關(guān)聯(lián)字符中設(shè)定的字符進(jìn)行轉(zhuǎn)義處理,假如雙引號〃被轉(zhuǎn)義為&#34、〈被轉(zhuǎn)義為&#60、>被轉(zhuǎn)義為&#62、&被轉(zhuǎn)義為&#38、空格()被轉(zhuǎn)義為&#160,則處理后的關(guān)聯(lián)字符為:
[0086]〈span id=//test//>&#60; 1&#62;&#160;&#160;&#160;&#160;目標(biāo):&#160;達(dá)到&#34; 1+1&#62;2&#34;的效果〈/span〉;
[0087]這樣,首先,瀏覽器不再會錯亂,且瀏覽器看到轉(zhuǎn)義后的字符,會自動在渲染文字時,把轉(zhuǎn)義后的字符顯示成轉(zhuǎn)義前的字符呈現(xiàn)給用戶。
[0088]步驟303,直接將所述關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層,所述定位元素在所述副本層中緊鄰所述關(guān)聯(lián)字符之后。結(jié)束當(dāng)前寫入流程。
[0089]本步驟303是在關(guān)聯(lián)字符中不存在設(shè)定的字符時執(zhí)行的,由于關(guān)聯(lián)字符中不存在設(shè)定的字符,瀏覽器不會錯亂,因此,可直接將確定的關(guān)聯(lián)字符寫入至副本層。
[0090]需要說明的是,步驟302或步驟303中的寫入可采用內(nèi)寫入(innerHTML)方式實現(xiàn)。其中,innerHTML是javascript用來獲取和設(shè)置一個元素內(nèi)部的html片段的一個屬性,網(wǎng)頁中的元素,都有這個屬性,而副本層屬于網(wǎng)頁中的元素,因此,其具有innerHTML屬性,可以采用innerHTML方式執(zhí)行字符寫入操作。
[0091]至此,完成圖3所示流程。
[0092]下面對圖4所示流程進(jìn)行描述:
[0093]參見圖4,圖4為本發(fā)明實施例提供的步驟106實現(xiàn)流程圖。如圖4所示,該流程可包括以下步驟:
[0094]步驟401,識別所述副本層中的定位元素是否為設(shè)定的輔助定位元素,如果是,執(zhí)行步驟402,否則,執(zhí)行步驟403。
[0095]步驟402,依據(jù)所述目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo),并采用公式I計算目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)。
[0096]本發(fā)明中,公式I的具體實現(xiàn)形式為:
[0097]X=Xa_Xb+Xc,Y=Ya_Yb+Yc ; (公式 1)
[0098]其中,X為目標(biāo)標(biāo)識的左上角在網(wǎng)頁中的橫坐標(biāo),Y為目標(biāo)標(biāo)識的左上角在網(wǎng)頁中的縱坐標(biāo),Xa為目標(biāo)輸入框的左上角在網(wǎng)頁中的橫坐標(biāo),Ya為目標(biāo)輸入框的左上角在網(wǎng)頁中的縱坐標(biāo),Xb為副本層的左上角在網(wǎng)頁中的橫坐標(biāo),Yb為副本層的左上角在網(wǎng)頁中的縱坐標(biāo),Xe為定位元素的左上角在網(wǎng)頁中的橫坐標(biāo),Yc為定位元素的左上角在網(wǎng)頁中的縱坐標(biāo)。
[0099]較佳地,在本發(fā)明中,若副本層定位至與目標(biāo)輸入框相同的位置,則意味著副本層左上角的橫、縱坐標(biāo)與目標(biāo)輸入框左上角的橫、縱坐標(biāo)相等,基于此,上述公式I中,Xa-Xb=O, Ya-Yb=O,公式 I 變成如下:X=Xc, Y=Yc0
[0100]步驟403,依據(jù)所述目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo),并采用公式2計算目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)。
[0101]本發(fā)明中,公式2的具體實現(xiàn)形式可為:
[0102]X=Xa-Xb+Xc+ffc, Y=Ya-Yb+Yc ; (公式 2)
[0103]其中,x、y、Xa、Xb、Xc、Ya、Yb、Yc如上所述。至于Wc,其為該定位元素的寬度。
[0104]較佳地,在本發(fā)明中,若副本層定位至與目標(biāo)輸入框相同的位置,則意味著副本層左上角的橫、縱坐標(biāo)與目標(biāo)輸入框左上角的橫、縱坐標(biāo)相等,基于此,上述公式3中,Xa-Xb=O, Ya-Yb=O,此時,公式 2 變成如下:X=Xc+Wc,Y=Yc。
[0105]至此,完成圖4所示的流程。
[0106]需要說明的是,在圖4所示流程中,公式1、公式2的具體實現(xiàn)形式只是一種舉例,并非用于限定本發(fā)明。本發(fā)明還可根據(jù)實際情況采用其他實現(xiàn)形式。
[0107]至此,完成本發(fā)明提供的方法描述。
[0108]以上對本發(fā)明提供的方法進(jìn)行了描述,下面對本發(fā)明提供的裝置進(jìn)行描述:
[0109]參見圖5,圖5為本發(fā)明實施例提供的裝置結(jié)構(gòu)圖。如圖5所示,該裝置包括:
[0110]處理單元,用于對目標(biāo)輸入框執(zhí)行用于消除瀏覽器排版差異的排版樣式處理;
[0111]創(chuàng)建單元,用于創(chuàng)建一個與目標(biāo)輸入框?qū)?yīng)的副本層,設(shè)置所述副本層對用戶不可見,并依據(jù)所述目標(biāo)輸入框的排版樣式指定所述副本層的排版樣式;
[0112]寫入單元,用于判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,如果是,將與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層,所述定位元素在所述副本層中緊鄰所述關(guān)聯(lián)字符之后,如果否,將針對目標(biāo)標(biāo)識構(gòu)造的定位元素寫入至副本層;
[0113]計算單元,用于依據(jù)所述目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo)計算所述目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)。
[0114]優(yōu)選地,所述處理單元執(zhí)行的排版樣式處理至少包括:[0115]為所述目標(biāo)輸入框配置以下版本樣式屬性:單詞換行word-wrap屬性和文本空白符處理white-space屬性;
[0116]指定所述目標(biāo)輸入框的word-wrap屬性為第一屬性值,所述第一屬性值用于表不當(dāng)單詞word長度達(dá)到設(shè)定長度時觸發(fā)瀏覽器強(qiáng)制對該單詞折行顯示;
[0117]指定所述目標(biāo)輸入框的white-space屬性為第二屬性值,所述第二屬性值用于表示:保留空白符、保留換行符、以及允許自動換行。
[0118]優(yōu)選地,所述創(chuàng)建單元依據(jù)目標(biāo)輸入框的排版樣式指定副本層的排版樣式包括:
[0119]遍歷所述目標(biāo)輸入框的版本樣式屬性,將遍歷到的版本樣式屬性配置在所述副本層,并指定所述副本層配置的版本樣式屬性與所述目標(biāo)輸入框上相同的版本樣式屬性具有相同的屬性值;
[0120]基于所述目標(biāo)輸入框的禁止溢出(overflow)特性,為所述副本層配置overflow屬性,并指定所述副本層的overflow屬性為第三屬性值,用于防止向副本層寫入的字符撐開副本層。
[0121]如圖4所示,本發(fā)明中,所述寫入單元通過以下子單元將與目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層:
[0122]判斷子單元,用于判斷與目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符是否存在設(shè)定字符,所述設(shè)定字符為與網(wǎng)頁標(biāo)簽代碼相同或相近的字符,至少包括:雙引號",小于號〈,大于號>,and符號&,空格;
[0123]寫入子單元,用于在所述判斷子單元判斷出所述關(guān)聯(lián)字符中存在設(shè)定字符時,對該確定的關(guān)聯(lián)字符中的設(shè)定字符進(jìn)行轉(zhuǎn)義處理,將處理后的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層,在所述判斷子單元判斷出所述關(guān)聯(lián)字符中不存在設(shè)定字符時,直接將所述關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層。
[0124]本發(fā)明中,所述目標(biāo)標(biāo)識為目標(biāo)輸入框內(nèi)的字符;
[0125]所述判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:判斷所述目標(biāo)輸入框在目標(biāo)標(biāo)識之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符;
[0126]所述與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:目標(biāo)輸入框內(nèi)且在所述目標(biāo)標(biāo)識之前的所有字符;
[0127]所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為設(shè)定的輔助定位元素,所述設(shè)定的輔助定位元素的寬度小于設(shè)定寬度,對網(wǎng)頁坐標(biāo)的計算無影響;或者,所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為通過網(wǎng)頁標(biāo)簽封裝的作為目標(biāo)標(biāo)識的字符。
[0128]本發(fā)明中,所述目標(biāo)標(biāo)識為目標(biāo)輸入框內(nèi)的光標(biāo);
[0129]所述判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:判斷所述目標(biāo)輸入框在目標(biāo)標(biāo)識之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符;
[0130]所述與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:目標(biāo)輸入框內(nèi)且在所述目標(biāo)標(biāo)識之前的所有字符;
[0131]所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為設(shè)定的輔助定位元素,所述設(shè)定的輔助定位元素的寬度小于設(shè)定寬度,對網(wǎng)頁坐標(biāo)的計算無影響。[0132]本發(fā)明中,所述目標(biāo)標(biāo)識為目標(biāo)輸入框內(nèi)的光標(biāo);
[0133]所述判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:識別出所述目標(biāo)輸入框內(nèi)在目標(biāo)標(biāo)識之前、且緊鄰所述目標(biāo)標(biāo)識的字符,判斷目標(biāo)輸入框在該識別出的字符之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符;
[0134]所述與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:目標(biāo)輸入框內(nèi)且在所述識別出的字符之前的所有字符;
[0135]所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為通過網(wǎng)頁標(biāo)簽封裝的所述識別出的字符。
[0136]基于此,本發(fā)明中,所述計算單元所述依據(jù)目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo)計算所述目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)包括:
[0137]識別所述副本層中的定位元素是否為設(shè)定的輔助定位元素;
[0138]如果是,采用以下公式計算目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo):X=Xa_Xb+Xc,Y=Ya_Yb+Yc ;
[0139]如果否,采用以下公式計算目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo):X=Xa-Xb+Xc+Wc,Y=Ya_Yb+Yc ;
[0140]其中,X為目標(biāo)標(biāo)識的左上角在網(wǎng)頁中的橫坐標(biāo),Y為目標(biāo)標(biāo)識的左上角在網(wǎng)頁中的縱坐標(biāo),Xa為目標(biāo)輸入框的左上角在網(wǎng)頁中的橫坐標(biāo),Ya為目標(biāo)輸入框的左上角在網(wǎng)頁中的縱坐標(biāo),Xb為副本層的左上角在網(wǎng)頁中的橫坐標(biāo),Yb為副本層的左上角在網(wǎng)頁中的縱坐標(biāo),Xe為定位元素的左上角在網(wǎng)頁中的橫坐標(biāo),Wc為定位元素的寬度,Yc為定位元素的左上角在網(wǎng)頁中的縱坐標(biāo)。
[0141]至此,完成圖5所示的裝置結(jié)構(gòu)描述。
[0142]由以上技術(shù)方案可以看出,本發(fā)明對目標(biāo)輸入框執(zhí)行用于消除瀏覽器排版差異的排版樣式處理,這樣,就不會出現(xiàn)針對不同瀏覽器計算的目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)不同的問題;
[0143]進(jìn)一步地,本發(fā)明在獲取目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)時,創(chuàng)建一個副本層,該副本層自身的外觀樣式、排版樣式全部都和目標(biāo)輸入框一樣,這樣,將目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識之前的所有字符寫入至副本層時就能夠讓這些寫入的字符在副本層的排版和目標(biāo)輸入框內(nèi)的排版相同,并同時將定位元素寫入副本層的最后面,依賴于瀏覽器繪制的副本層、目標(biāo)輸入框、以及定位元素的網(wǎng)頁坐標(biāo),完全不受滾動條的影響,保證輸入框內(nèi)字符或光標(biāo)的網(wǎng)頁坐標(biāo)計算結(jié)果準(zhǔn)確。
[0144]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種網(wǎng)頁坐標(biāo)獲取方法,其特征在于,該方法包括: 對目標(biāo)輸入框執(zhí)行用于消除瀏覽器排版差異的排版樣式處理; 創(chuàng)建一個與目標(biāo)輸入框?qū)?yīng)的副本層,設(shè)置所述副本層對用戶不可見,并依據(jù)所述目標(biāo)輸入框的排版樣式指定所述副本層的排版樣式; 判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,如果是,將與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層,所述定位元素在所述副本層中緊鄰所述關(guān)聯(lián)字符之后,如果否,將針對目標(biāo)標(biāo)識構(gòu)造的定位元素寫入至副本層; 依據(jù)所述目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo)計算所述目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述排版樣式處理至少包括: 為所述目標(biāo)輸入框配置以下版本樣式屬性:單詞換行word-wrap屬性和文本空白符處理 white-space 屬性; 指定所述目標(biāo)輸入框的word-wrap屬性為第一屬性值,所述第一屬性值用于表示當(dāng)單詞word長度達(dá)到設(shè)定長度時觸發(fā)瀏覽器強(qiáng)制對該單詞折行顯示; 指定所述目標(biāo)輸入框的white-space屬性為第二屬性值,所述第二屬性值用于表示:保留空白符、保留換行符、以及允許自動換行。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述依據(jù)目標(biāo)輸入框的排版樣式指定副本層的排版樣式包括: 遍歷所述目標(biāo)輸入框的版本樣式屬性,`將遍歷到的版本樣式屬性配置在所述副本層,并指定所述副本層和所述目標(biāo)輸入框上相同的版本樣式屬性具有相同的屬性值; 基于所述目標(biāo)輸入框具有的禁止溢出overflow特性,為所述副本層配置overflow屬性,并指定所述副本層的overflow屬性為第三屬性值,所述第三屬性值用于防止副本層寫入的字符撐開副本層。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層包括: 判斷與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符中是否存在設(shè)定字符,所述設(shè)定字符為與網(wǎng)頁標(biāo)簽代碼相同或相近的字符; 如果是,對所述關(guān)聯(lián)字符中的設(shè)定字符進(jìn)行轉(zhuǎn)義處理,將處理后的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層; 如果否,將所述關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述設(shè)定字符至少包括:雙引號",小于號〈,大于號>,and符號&,空格。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)標(biāo)識為目標(biāo)輸入框內(nèi)的字符; 所述判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:判斷所述目標(biāo)輸入框內(nèi)的目標(biāo)標(biāo)識之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符; 所述與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識之前的所有字符。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為設(shè)定的輔助定位元素,所述設(shè)定的輔助定位元素的寬度小于設(shè)定寬度,對網(wǎng)頁坐標(biāo)的計算無影響;或者, 所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為通過網(wǎng)頁標(biāo)簽封裝的作為目標(biāo)標(biāo)識的字符。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)標(biāo)識為目標(biāo)輸入框內(nèi)的光標(biāo); 所述判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:判斷所述目標(biāo)輸入框內(nèi)的目標(biāo)標(biāo)識之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符; 所述與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識之前的所有字符。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為設(shè)定的輔助定位元素,所述設(shè)定的輔助定位元素的寬度小于設(shè)定寬度,對網(wǎng)頁坐標(biāo)的計算無影響。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)標(biāo)識為目標(biāo)輸入框內(nèi)的光標(biāo); 所述判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:識別出所述目標(biāo)輸入框內(nèi)在目標(biāo)標(biāo)識之前、且緊鄰所述目標(biāo)標(biāo)識的字符,判斷目標(biāo)輸入框內(nèi)該識別出的字符之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符; 所述與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:目標(biāo)輸入框內(nèi)所述識別出的字符之前的所有字符。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為通過網(wǎng)頁標(biāo)簽封裝的所述識別出的字符。
12.根據(jù)權(quán)利要求 1至11任一所述的方法,其特征在于,所述依據(jù)目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo)計算所述目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)包括: 識別所述副本層中的定位元素是否為設(shè)定的輔助定位元素; 如果是,采用以下公式計算目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo):X=Xa-Xb+Xc, Y=Ya-Yb+Yc ; 如果否,采用以下公式計算目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo):X=Xa-Xb+Xc+Wc, Y=Ya_Yb+Yc ; 其中,X為目標(biāo)標(biāo)識的左上角在網(wǎng)頁中的橫坐標(biāo),Y為目標(biāo)標(biāo)識的左上角在網(wǎng)頁中的縱坐標(biāo),Xa為目標(biāo)輸入框的左上角在網(wǎng)頁中的橫坐標(biāo),Ya為目標(biāo)輸入框的左上角在網(wǎng)頁中的縱坐標(biāo),Xb為副本層的左上角在網(wǎng)頁中的橫坐標(biāo),Yb為副本層的左上角在網(wǎng)頁中的縱坐標(biāo),Xe為定位元素的左上角在網(wǎng)頁中的橫坐標(biāo),Wc為定位元素的寬度,Yc為定位元素的左上角在網(wǎng)頁中的縱坐標(biāo)。
13.一種應(yīng)用于網(wǎng)頁坐標(biāo)獲取的裝置,其特征在于,該裝置包括: 處理單元,用于對目標(biāo)輸入框執(zhí)行用于消除瀏覽器排版差異的排版樣式處理; 創(chuàng)建單元,用于創(chuàng)建一個與目標(biāo)輸入框?qū)?yīng)的副本層,設(shè)置所述副本層對用戶不可見,并依據(jù)所述目標(biāo)輸入框的排版樣式指定所述副本層的排版樣式; 寫入單元,用于判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,如果是,將與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層,所述定位元素在所述副本層中緊鄰所述關(guān)聯(lián)字符之后,如果否,將針對目標(biāo)標(biāo)識構(gòu)造的定位元素寫入至副本 層;計算單元,用于依據(jù)所述目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo)計算所述目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述處理單元執(zhí)行的排版樣式處理至少包括: 為所述目標(biāo)輸入框配置以下版本樣式屬性:單詞換行word-wrap屬性和文本空白符處理 white-space 屬性; 指定所述目標(biāo)輸入框的word-wrap屬性為第一屬性值,所述第一屬性值用于表示當(dāng)單詞word長度達(dá)到設(shè)定長度時觸發(fā)瀏覽器強(qiáng)制對該單詞折行顯示; 指定所述目標(biāo)輸入框的white-space屬性為第二屬性值,所述第二屬性值用于表示:保留空白符、保留換行符、以及允許自動換行。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述創(chuàng)建單元依據(jù)目標(biāo)輸入框的排版樣式指定副本層的排版樣式包括: 遍歷所述目標(biāo)輸入框的版本樣式屬性,將遍歷到的版本樣式屬性配置在所述副本層,并指定所述副本層配置的版本樣式屬性與所述目標(biāo)輸入框上相同的版本樣式屬性具有相同的屬性值; 基于所述目標(biāo)輸入框的禁止溢出overflow特性,為所述副本層配置overflow屬性,并指定所述副本層的overflow屬性為第三屬性值,用于防止向副本層寫入的字符撐開副本層。
16.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述寫入單元通過以下子單元將與目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層:` 判斷子單元,用于判斷與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符中是否存在設(shè)定字符,所述設(shè)定字符為與網(wǎng)頁標(biāo)簽代碼相同或相近的字符,至少包括:雙引號〃,小于號〈,大于號>,and符號&,空格; 寫入子單元,用于在所述判斷子單元判斷出所述關(guān)聯(lián)字符中存在設(shè)定字符時,對該確定的關(guān)聯(lián)字符中的設(shè)定字符進(jìn)行轉(zhuǎn)義處理,將處理后的關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層,在所述判斷子單元判斷出所述關(guān)聯(lián)字符中不存在設(shè)定字符時,直接將所述關(guān)聯(lián)字符、以及針對目標(biāo)標(biāo)識構(gòu)造的定位元素一起寫入至副本層。
17.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述目標(biāo)標(biāo)識為目標(biāo)輸入框內(nèi)的字符; 所述判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:判斷所述目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符; 所述與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識之前的所有字符; 所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為設(shè)定的輔助定位元素,所述設(shè)定的輔助定位元素的寬度小于設(shè)定寬度,對網(wǎng)頁坐標(biāo)的計算無影響;或者,所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為通過網(wǎng)頁標(biāo)簽封裝的作為目標(biāo)標(biāo)識的字符。
18.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述目標(biāo)標(biāo)識為目標(biāo)輸入框內(nèi)的光標(biāo); 所述判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:判斷所述目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符; 所述與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:目標(biāo)輸入框內(nèi)目標(biāo)標(biāo)識之前的所有字符; 所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為設(shè)定的輔助定位元素,所述設(shè)定的輔助定位元素的寬度小于設(shè)定寬度,對網(wǎng)頁坐標(biāo)的計算無影響。
19.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述目標(biāo)標(biāo)識為目標(biāo)輸入框內(nèi)的光標(biāo); 所述判斷目標(biāo)輸入框內(nèi)是否存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:識別出所述目標(biāo)輸入框內(nèi)在目標(biāo)標(biāo)識之前、且緊鄰所述目標(biāo)標(biāo)識的字符,判斷目標(biāo)輸入框內(nèi)該識別出的字符之前是否存在字符,如果是,確定目標(biāo)輸入框內(nèi)存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符,否則,確定目標(biāo)輸入框內(nèi)不存在與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符; 所述與目標(biāo)標(biāo)識相關(guān)聯(lián)的關(guān)聯(lián)字符包括:目標(biāo)輸入框內(nèi)所述識別出的字符之前的所有字符; 所述針對目標(biāo)標(biāo)識構(gòu)造的定位元素為通過網(wǎng)頁標(biāo)簽封裝的所述識別出的字符。
20.根據(jù)權(quán)利要求13至19任一所述的裝置,其特征在于,所述計算單元所述依據(jù)目標(biāo)輸入框的網(wǎng)頁坐標(biāo)、所述副本層的網(wǎng)頁坐標(biāo)、以及定位元素的網(wǎng)頁坐標(biāo)計算所述目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo)包括: 識別所述副本層中的定位元素是否為設(shè)定的輔助定位元素; 如果是,采用以下公式計算目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo):X=Xa-Xb+Xc, Y=Ya-Yb+Yc ; 如果否,采用以下公式計算目標(biāo)標(biāo)識的網(wǎng)頁坐標(biāo):X=Xa-Xb+Xc+Wc, Y=Ya_Yb+Yc ; 其中,X為目標(biāo)標(biāo)識的左上角在網(wǎng)頁中的橫坐標(biāo),Y為目標(biāo)標(biāo)識的左上角在網(wǎng)頁中的縱坐標(biāo),Xa為目標(biāo)輸入框的左上角`在網(wǎng)頁中的橫坐標(biāo),Ya為目標(biāo)輸入框的左上角在網(wǎng)頁中的縱坐標(biāo),Xb為副本層的左上角在網(wǎng)頁中的橫坐標(biāo),Yb為副本層的左上角在網(wǎng)頁中的縱坐標(biāo),Xe為定位元素的左上角在網(wǎng)頁中的橫坐標(biāo),Wc為定位元素的寬度,Yc為定位元素的左上角在網(wǎng)頁中的縱坐標(biāo)。
【文檔編號】G06F17/30GK103870484SQ201210538648
【公開日】2014年6月18日 申請日期:2012年12月13日 優(yōu)先權(quán)日:2012年12月13日
【發(fā)明者】李晶, 郭學(xué)亨, 陳映平, 吳浩, 劉恒兵, 龍丁奮 申請人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1