網(wǎng)頁文本域高度自適應(yīng)縮放方法及裝置制造方法
【專利摘要】本發(fā)明提出一種網(wǎng)頁文本域高度自適應(yīng)縮放方法及瀏覽器,其網(wǎng)頁文本域高度自適應(yīng)縮放方法包括以下步驟:使用內(nèi)核控件打開帶有文本域的頁面;調(diào)用內(nèi)核控件注入并執(zhí)行預(yù)設(shè)的JavaScript腳本;監(jiān)測導(dǎo)致頁面文本域中文本發(fā)生變化的用戶事件,獲取文本域?qū)嶋H的高度和文本行數(shù);根據(jù)所述文本域的實際高度和文本行數(shù),將文本域顯示的高度設(shè)置成滾動高度。本發(fā)明通過JavaScript編譯的程序?qū)崿F(xiàn)對網(wǎng)頁文本域的監(jiān)測,并計算出文本域?qū)嶋H的高度和文本行數(shù),從而使瀏覽器可以根據(jù)文本域的實際高度對其顯示在頁面上的高度作自適應(yīng)性縮放,根本上消除了網(wǎng)頁文本域中輸入的信息量受到限制的問題。
【專利說明】網(wǎng)頁文本域高度自適應(yīng)縮放方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動終端的瀏覽器技術(shù),特別涉及一種網(wǎng)頁文本域高度自適應(yīng)縮放方法及裝置。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)的迅速發(fā)展,通信科技的日新月異,移動通信終端已被人們廣泛應(yīng)用于日常生活和學(xué)習(xí)中,越來越多的人習(xí)慣于使用移動終端進行聊天、上網(wǎng)。
[0003]通過手機終端瀏覽網(wǎng)頁時,在頁面上經(jīng)常會有文本域供用戶輸入文本。但是,目前一些操作系統(tǒng)并不支持對網(wǎng)頁文本域的操作。
[0004]例如,安裝WP7 (Windows Phone7,微軟公司發(fā)布的一款手機操作系統(tǒng))的手機終端,使用WP7提供的WebBrowser控件(WebBrowser是IE內(nèi)置的瀏覽器控件)可以導(dǎo)航網(wǎng)站和?宣染顯不網(wǎng)頁,但是由于WebBrowser控件開放出來的API (Application ProgrammingInterface,應(yīng)用程序編程接口)接葉分地有限,使用這種控件顯示的網(wǎng)頁中,沒有相關(guān)的API接口可以操作到文本域,程序無法獲取該控件顯示的網(wǎng)頁元素對象,無法對網(wǎng)頁文本域進行操作,即無法實現(xiàn)文本域的自動縮放,導(dǎo)致安裝該操作系統(tǒng)的手機終端輸入文本域的信息量受到限制。
[0005]綜上所述,目前迫切需要一 種方案,在手機操作系統(tǒng)不提供操作文本域的API接口時,來實現(xiàn)文本域的自適應(yīng)縮放功能。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是提供一種網(wǎng)頁文本域高度自適應(yīng)縮放方法及裝置,以解決現(xiàn)有的一些手機操作系統(tǒng)不支持對文本域的操作,導(dǎo)致文本域輸入信息量受到限制的問題。
[0007]本發(fā)明提出一種網(wǎng)頁文本域高度自適應(yīng)縮放方法,包括以下步驟:
[0008]使用內(nèi)核控件打開帶有文本域的頁面;
[0009]調(diào)用內(nèi)核控件注入并執(zhí)行預(yù)設(shè)的JavaScript腳本;
[0010]監(jiān)測導(dǎo)致頁面文本域中文本發(fā)生變化的用戶事件,進而獲取文本域?qū)嶋H的高度和文本行數(shù);
[0011]根據(jù)所述文本域的實際高度和文本行數(shù),將文本域顯示的高度設(shè)置成滾動高度。
[0012]本發(fā)明還提出一種網(wǎng)頁文本域高度自適應(yīng)縮放方法及裝置,包括:
[0013]顯示模塊,用于使用內(nèi)核控件打開帶有文本域的頁面;
[0014]腳本模塊,其由JavaScript語言編譯而成,用于監(jiān)測導(dǎo)致頁面文本域中文本發(fā)生變化的用戶事件,并獲取文本域?qū)嶋H的高度和文本行數(shù);
[0015]執(zhí)行模塊,用于調(diào)用內(nèi)核控件注入并執(zhí)行所述腳本模塊;
[0016]高度設(shè)置模塊,用于根據(jù)所述腳本模塊獲取的文本域的實際高度和文本行數(shù),將文本域顯示的高度設(shè)置成滾動高度和文本行數(shù)。
[0017]相對于現(xiàn)有技術(shù),本發(fā)明的有益效果是:本發(fā)明通過JavaScript編譯的程序?qū)崿F(xiàn)對網(wǎng)頁文本域的監(jiān)測,根據(jù)文本域中的文本變化,計算出文本域?qū)嶋H的高度和文本行數(shù),從而使瀏覽器可以根據(jù)文本域的實際高度對其顯示在頁面上的高度作自適應(yīng)性縮放,根本上消除了網(wǎng)頁文本域中輸入的信息量受到限制的問題,特別適合在Windows Phone7等不為文本域操作開放專用API接口的操作系統(tǒng)上使用。
[0018]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點能夠更明顯易懂,以下特舉較佳實施例,并配合附圖,詳細說明如下。
【專利附圖】
【附圖說明】
[0019]圖1為本發(fā)明實施例的一種網(wǎng)頁文本域高度自適應(yīng)縮放方法的流程圖;
[0020]圖2為本發(fā)明實施例的一種網(wǎng)頁文本域高度自適應(yīng)縮放裝置的結(jié)構(gòu)圖;
[0021]圖3為本發(fā)明實施例的一種腳本模塊的結(jié)構(gòu)圖。
【具體實施方式】
[0022]為更進一步闡述本發(fā)明達成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實施例,對依據(jù)本發(fā)明提出的網(wǎng)頁文本域高度自適應(yīng)縮放方法及裝置其【具體實施方式】、方法、步驟及功效,詳細說明如后。
[0023]有關(guān)本發(fā)明的前述及其他技術(shù)內(nèi)容、特點及功效,在以下配合參考圖式的較佳實施例詳細說明中將可清楚的呈現(xiàn)。通過【具體實施方式】的說明,當(dāng)可對本發(fā)明為達成預(yù)定目的所采取的技術(shù)手段及功效得以更加深入且具體的了解,然而所附圖式僅是提供參考與說明之用,并非用來對本發(fā)明加以限制。
[0024]本發(fā)明提出一種網(wǎng)頁文本域高度自適應(yīng)縮放方法,特別適合在操作系統(tǒng)不支持對文本域進行操作的手機終端上使用,現(xiàn)以應(yīng)用于Windows Phone7操作系統(tǒng)為例進行詳細說明,請參見圖1,其包括以下步驟:
[0025]SI I,使用內(nèi)核控件打開帶有文本域的頁面。
[0026]可以通過瀏覽器的IE內(nèi)核控件WebBrowser (WebBrowser是WP7操作系統(tǒng)提供的用于網(wǎng)頁渲染顯示和導(dǎo)航的可嵌入到程序中的控件)展現(xiàn)WEB頁面內(nèi)容。
[0027]S12,調(diào)用內(nèi)核控件注入并執(zhí)行預(yù)設(shè)的JavaScript腳本。
[0028]具體來說,可以通過WebBrowser控件提供的InvokeScript函數(shù)向網(wǎng)頁注入JavaScript腳本,并使網(wǎng)頁執(zhí)行JavaScript腳本。
[0029]JavaScript是一種廣泛用于客戶端網(wǎng)頁開發(fā)的腳本語言,可用來給HTML(Hypertext Markup Language,超文本標(biāo)記語言,是用于描述網(wǎng)頁文檔的一種標(biāo)記語言)網(wǎng)頁添加動態(tài)功能,使用JavaScript語言可以操作網(wǎng)頁的DOM元素(Document ObjectModel,文檔對象模型,是一種用于HTML文檔的編程接口,它給文檔提供了一種結(jié)構(gòu)化的表示方法,可以改變文檔的內(nèi)容和呈現(xiàn)方式,DOM把網(wǎng)頁和腳本以及其他的編程語言聯(lián)系了起來,腳本開發(fā)人員可以通過文檔對象的屬性、方法和事件來掌控、操縱和創(chuàng)建動態(tài)的網(wǎng)頁元素),所以可以通過注入和調(diào)用相關(guān)的JavaScript腳本來獲取textarea標(biāo)簽(網(wǎng)頁文本域的HTML標(biāo)簽,定義多行的文本輸入控件)的對象和響應(yīng)textarea標(biāo)簽的事件,達到操作網(wǎng)頁文本域的目的。[0030]S13,初始化文本域的高度以及文本格式。
[0031]通過執(zhí)行JavaScript腳本,可以將瀏覽器顯示頁面中的文本域高度以及其中的文本格式設(shè)置為預(yù)設(shè)值,文本格式可以包括文字大小、文字間距、行間距等,對文本格式的初始化設(shè)置也便于后續(xù)文本行數(shù)的計算。例如,設(shè)置文本域中的字體大小為17px (Pixel,像素,px是相對于顯示器屏幕分辨率而言的相對長度單位),設(shè)置文本域的高度值為50px,這樣能夠保證文本域的最小高度為50px,即為兩行文本的高度,這樣能更容易讓用戶意識到文本域可以輸入多行文字。
[0032]S14,通過JavaScript腳本監(jiān)測導(dǎo)致頁面文本域中文本發(fā)生變化的用戶事件,并獲取文本域?qū)嶋H的高度和文本行數(shù)。
[0033]具體來說,可以通過監(jiān)聽onpropertychange事件、onkeyup事件和onresize事件實現(xiàn)對文本域中文本變化的監(jiān)測。
[0034]onpropertychange事件是HTML元素的屬性發(fā)生改變的通知事件,通過對onpropertychange事件的監(jiān)聽可以實現(xiàn)對除了刪除文本以外的所有導(dǎo)致頁面文本域中文本發(fā)生屬性值變化的用戶事件的監(jiān)測。在IE中監(jiān)聽onpropertychange事件可以及時捕獲到網(wǎng)頁文本域的屬性值變化,比如輸入文本、粘貼文本等,但是對onpropertychange事件的監(jiān)聽并不能捕獲到使用退格鍵刪除文本的事件。
[0035]而onkeyup事件是鍵盤觸發(fā)的通知事件,通過對onkeyup事件的監(jiān)聽可以實現(xiàn)對刪除文本時鍵盤按鍵的用戶事件的監(jiān)測。當(dāng)用戶按下鍵盤刪除按鍵并松開后可以及時被onkeyup事件捕獲到,這樣onpropertychange事件不能捕獲到的刪除文本的用戶事件就能夠被onkeyup事件捕獲到。監(jiān)聽onkeyup事件可以彌補監(jiān)聽onpropertychange事件的不足,因此監(jiān)聽onpropertychange和onkeyup兩個事件,網(wǎng)頁文本域的文本發(fā)生變化就可以完全被捕獲到。
[0036]onresize事件是文本域尺寸發(fā)生變化的通知事件。例如移動終端顯示屏發(fā)生旋轉(zhuǎn)而使文本域自適應(yīng)旋轉(zhuǎn)時,文本域的尺寸會相應(yīng)的發(fā)生變化,從而可能由于文本域中文本行數(shù)的變化而致使文本域的實際高度也發(fā)生變化,因而需要通過對onresize事件的監(jiān)聽實現(xiàn)對導(dǎo)致文本域尺寸變化的用戶事件的監(jiān)測。
[0037]在監(jiān)測到用戶事件后,要為監(jiān)測到的各個用戶事件附加處理事件。具體來說,可以利用attachEvent函數(shù)為監(jiān)聽到的onpropertychange事件、onkeyup事件和onresize事件附加處理事件,這里所說的處理事件是指為所有用戶事件賦予的一個統(tǒng)一的函數(shù)。也即是,onpropertychange事件、onkeyup事件和onresize事件觸發(fā)后就會去執(zhí)行附加的處理事件,讓onpropertychange事件、onkeyup事件和onresize事件的附加處理事件指向同一個事件方法,這樣就可以統(tǒng)一編寫實現(xiàn)網(wǎng)頁文本域輸入框高度自適應(yīng)縮放的邏輯,處理文本發(fā)生變化的事件。
[0038]通過附加的處理事件,可以獲知文本域中文本的變化,從而便可以獲取文本域?qū)嶋H的高度和文本行數(shù)。具體來說,根據(jù)處理事件可以獲取文本矩形區(qū)域的數(shù)組然后根據(jù)文本矩形區(qū)域的數(shù)組,計算文本域的實際高度和當(dāng)前的文本行數(shù)。具體方法如下:使用createTextRange函數(shù)為textarea對象創(chuàng)建一個TextRange對象,然后通過TextRange對象的getClientRects函數(shù)方法獲取到文本矩形區(qū)域的數(shù)組。該數(shù)組中包含文本域文本框的上、下、左、右、寬、高六個坐標(biāo)位置數(shù)據(jù),因此從中可以直接獲取文本域的實際高度。而由于文本域中的文本格式是已知的(步驟S13中經(jīng)過初始化,即使沒有經(jīng)過初始化,也可以從文本域?qū)傩灾抵泻唵蔚孬@取),從而結(jié)合文本域的實際高度和文本格式,就能計算出當(dāng)前的文本行數(shù)。
[0039]S15,根據(jù)文本域的實際高度和文本行數(shù),將文本域顯示的高度設(shè)置成滾動高度。
[0040]獲取文本域的實際高度和文本行數(shù)后,接下來首先判斷當(dāng)前文本域的行數(shù)是否大于或者等于2,若大于等于2,則說明當(dāng)前頁面顯示的文本域文本框高度可能不足以容納所有文本。這時如果文本域顯示的是帶有滾動條的文本框,可以再判斷當(dāng)前滾動高度是否與實際高度一致(這里所述的滾動高度是指頁面上所顯示的帶有滾動條滾動距離的文本框高度),如果不一致,則將文本域顯示的高度設(shè)置成與文本域?qū)嶋H高度一致的滾動高度。這樣做的原理是:文本域中文本的高度超過文本框自身的高度時,滾動條就會出現(xiàn),這時文本域的滾動高度是大于文本框的高度的,只要通過瀏覽器參數(shù)的修改,就能夠?qū)崿F(xiàn)網(wǎng)頁文本域輸入框高度自適應(yīng)縮放了。
[0041]本發(fā)明通過JavaScript腳本遍歷并操作所有的textarea標(biāo)簽,獲取文本域的屬性,從而可以對網(wǎng)頁文本域進行操作,最終實現(xiàn)網(wǎng)頁文本域輸入框高度自適應(yīng)縮放的功能,根本上解決了網(wǎng)頁文本域中輸入的信息量受到限制的問題,特別可以在各種沒有專門為文本域開放API接口的操作系統(tǒng)上使用。
[0042]通過本發(fā)明的網(wǎng)頁文本域高度獲取方法獲取網(wǎng)頁中文本域的實際高度和其中的文本行數(shù)后,將其傳送給瀏覽器,便可以通過對瀏覽器進行程序控制以達到自適應(yīng)調(diào)整文本域高度的功能。
[0043]本發(fā)明還提出一種網(wǎng)頁文本域高度自適應(yīng)縮放裝置,請參見圖2,其包括顯示模塊31、腳本模塊32、執(zhí)行模塊33以及高度設(shè)置模塊34,腳本模塊32與顯示模塊31相連,執(zhí)行模塊33與腳本模塊32相連,高度設(shè)置模塊34分別與顯示模塊31和腳本模塊32相連。
[0044]顯示模塊31用于使用內(nèi)核控件開打網(wǎng)頁,顯示帶有文本域的頁面,其可以通過瀏覽器的IE內(nèi)核控件WebBrowser展現(xiàn)WEB頁面內(nèi)容。
[0045]執(zhí)行模塊33用于調(diào)用內(nèi)核控件注入并執(zhí)行腳本模塊32。具體來說,其可以通過WebBrowser控件提供的InvokeScript函數(shù)向網(wǎng)頁注入腳本模塊32,并使網(wǎng)頁執(zhí)行腳本模塊32。
[0046]腳本模塊32由JavaScript語言編譯而成,用于監(jiān)測導(dǎo)致頁面文本域中文本發(fā)生變化的用戶事件,并獲取文本域?qū)嶋H的高度和文本行數(shù)。請參見圖3,腳本模塊32進一步包括監(jiān)測單元321、處理事件附加單元322、獲取單元323以及初始化單元324,監(jiān)測單元321又進一步包括屬性變化監(jiān)測子單元3211、刪除文本監(jiān)測子單元3212及尺寸變化監(jiān)測子單元3213,獲取單元323又進一步包括區(qū)域數(shù)組獲取子單元3231、高度計算子單元3232以及行數(shù)計算子單元3233。監(jiān)測單元321和初始化單元324均與顯示模塊31相連。監(jiān)測單元321的屬性變化監(jiān)測子單元3211、刪除文本監(jiān)測子單元3212和尺寸變化監(jiān)測子單元3213均連接到處理事件附加單元322。獲取單元323的區(qū)域數(shù)組獲取子單元3231與處理事件附加單元322相連,高度計算子單元3232以及行數(shù)計算子單元3233均與區(qū)域數(shù)組獲取子單元3231相連,且行數(shù)計算子單元3233與初始化單元324相連。
[0047]初始化單元324用于將顯示模塊31所顯示的文本域的高度以及文本域中文本格式設(shè)置為預(yù)設(shè)值。文本格式可以包括文字大小、文字間距、行間距等,對文本格式的初始化設(shè)置也便于后續(xù)文本行數(shù)的計算。
[0048]監(jiān)測單元321用于監(jiān)測導(dǎo)致頁面文本域中文本發(fā)生變化的用戶事件。屬性變化監(jiān)測子單元3211用于監(jiān)測除刪除文本的用戶事件以外的所有導(dǎo)致頁面文本域中文本發(fā)生屬性值變化的用戶事件,其可以通過對onpropertychange事件的監(jiān)聽實現(xiàn)對除了刪除文本以外的所有導(dǎo)致頁面文本域中文本發(fā)生屬性值變化的用戶事件的監(jiān)測。在IE中監(jiān)聽onpropertychange事件可以及時捕獲到網(wǎng)頁文本域的屬性值變化,比如輸入文本、粘貼文本等,但是對onpropertychange事件的監(jiān)聽并不能捕獲到使用退格鍵刪除文本的事件。
[0049]刪除文本監(jiān)測子單元3212用于監(jiān)測刪除文本時鍵盤按鍵的用戶事件,其可以通過對onkeyup事件的監(jiān)聽實現(xiàn)對刪除文本時鍵盤按鍵的用戶事件的監(jiān)測。當(dāng)用戶按下鍵盤刪除按鍵并松開后可以及時被onkeyup事件捕獲到,這樣onpropertychange事件不能捕獲到的刪除文本的用戶事件就能夠被onkeyup事件捕獲到。監(jiān)聽onkeyup事件可以彌補監(jiān)聽onpropertychange事件的不足,因此監(jiān)聽onpropertychange和onkeyup兩個事件,網(wǎng)頁文本域的文本發(fā)生變化就可以完全被捕獲到。
[0050]尺寸變化監(jiān)測子單元3213用于監(jiān)測導(dǎo)致文本域尺寸變化的用戶事件的監(jiān)測,其可以通過對onresize事件的監(jiān)聽實現(xiàn)對文本域尺寸變化的監(jiān)測。例如移動終端顯示屏發(fā)生旋轉(zhuǎn)而使文本域自適應(yīng)旋轉(zhuǎn)時,文本域的尺寸會相應(yīng)的發(fā)生變化,從而可能由于文本域中文本行數(shù)的變化而致使文本域的實際高度也發(fā)生變化,因此可以通過對onresize事件的監(jiān)聽實現(xiàn)對導(dǎo)致文本域尺寸變化的用戶事件的監(jiān)測。
[0051]處理事件附加單元322用于為監(jiān)測單元321檢測到的各個用戶事件附加處理事件,其可以利用attachEvent函數(shù)為屬性變化監(jiān)測子單元3211、刪除文本監(jiān)測子單元3212和尺寸變化監(jiān)測子單元3213監(jiān)測到的onpropertychange事件、onkeyup事件和onresize事件附加處理事件。處理事件是指為所有用戶事件賦予的一個統(tǒng)一的函數(shù)。也即是,onpropertychange事件、onkeyup事件和onresize事件觸發(fā)后就會去執(zhí)行附加的處理事件,讓onpropertychange事件、onkeyup事件和onresize事件的附加處理事件指向同一個事件方法,這樣就可以統(tǒng)一編寫實現(xiàn)網(wǎng)頁文本域輸入框高度自適應(yīng)縮放的邏輯,處理文本發(fā)生變化的事件。
[0052]獲取單元323用于根據(jù)處理事件附加單元322附加的處理事件,獲取文本域?qū)嶋H高度和文本行數(shù)。具體來說,首先由區(qū)域數(shù)組獲取子單元3231根據(jù)處理事件附加單元322附加的處理事件,獲取文本矩形區(qū)域的數(shù)組,其可以使用createTextRange函數(shù)為textarea對象創(chuàng)建一個TextRange對象,然后通過TextRange對象的getClientRects函數(shù)方法獲取到文本矩形區(qū)域的數(shù)組。該數(shù)組中包含文本域文本框的上、下、左、右、寬、高六個坐標(biāo)位置數(shù)據(jù)。
[0053]然后由高度計算子單元3232和行數(shù)計算子單元3233根據(jù)文本矩形區(qū)域的數(shù)組,分別計算文本域的實際高度和文本域當(dāng)前的文本行數(shù)。由于數(shù)組中包含文本域文本框的上、下、左、右、寬、高六個坐標(biāo)位置數(shù)據(jù),所以高度計算子單元3232從中可以直接獲取文本域的實際高度。而由于文本域中的文本格式是經(jīng)過初始化單元324初始化的(即使沒有經(jīng)過初始化,也可以從文本域?qū)傩灾抵泻唵蔚孬@取),從而行數(shù)計算子單元3233結(jié)合文本域的實際高度和文本格式,就能計算出當(dāng)前的文本行數(shù)。
[0054]最后,高度設(shè)置模塊34會根據(jù)腳本模塊32獲取的文本域的實際高度和文本行數(shù),將文本域顯示的高度設(shè)置成滾動高度和文本行數(shù)。在
[0055]獲取文本域的實際高度和文本行數(shù)后,高度設(shè)置模塊34首先會判斷當(dāng)前文本域的行數(shù)是否大于或者等于2,若大于等于2,則說明當(dāng)前頁面顯示的文本域文本框高度可能不足以容納所有文本。這時如果文本域顯示的是帶有滾動條的文本框,可以再判斷當(dāng)前滾動高度是否與實際高度一致(這里所述的滾動高度是指頁面上所顯示的帶有滾動條滾動距離的文本框高度),如果不一致,則高度設(shè)置模塊34會將文本域顯示的高度設(shè)置成與文本域?qū)嶋H高度一致的滾動高度。
[0056]本發(fā)明通過JavaScript編譯的程序?qū)崿F(xiàn)對網(wǎng)頁文本域的監(jiān)測,根據(jù)文本域中的文本變化,計算出文本域?qū)嶋H的高度和文本行數(shù),從而使瀏覽器可以根據(jù)文本域的實際高度對其顯示在頁面上的高度作自適應(yīng)性操作,根本上消除了網(wǎng)頁文本域中輸入的信息量受到限制的問題,特別適合在Windows Phone7等不為文本域操作開放專用API接口的操作系統(tǒng)上使用。
[0057]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實施例可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明實施例的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是⑶-R0M,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明實施例各個實施場景所述的方法。
[0058]以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的技術(shù)內(nèi)容作出些許更動或修飾為等同變化的等效實施例,但凡是未脫離本發(fā)明技術(shù)方案內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
【權(quán)利要求】
1.一種網(wǎng)頁文本域高度自適應(yīng)縮放方法,其特征在于,包括以下步驟: 使用內(nèi)核控件打開帶有文本域的頁面; 調(diào)用內(nèi)核控件注入并執(zhí)行預(yù)設(shè)的JavaScript腳本; 監(jiān)測導(dǎo)致頁面文本域中文本發(fā)生變化的用戶事件,進而獲取文本域?qū)嶋H的高度和文本行數(shù); 根據(jù)所述文本域的實際高度和文本行數(shù),將文本域顯示的高度設(shè)置成滾動高度。
2.如權(quán)利要求1所述的網(wǎng)頁文本域高度自適應(yīng)縮放方法,其特征在于,所述向瀏覽器注入并執(zhí)行預(yù)設(shè)的JavaScript腳本的步驟之后還包括:將文本域的高度以及文本域中文本格式設(shè)置為預(yù)設(shè)值。
3.如權(quán)利要求1所述的網(wǎng)頁文本域高度自適應(yīng)縮放方法,其特征在于,所述監(jiān)測導(dǎo)致頁面文本域中文本發(fā)生變化的用戶事件的步驟包括: 監(jiān)測除刪除文本以外的所有導(dǎo)致頁面文本域中文本發(fā)生屬性值變化的用戶事件; 監(jiān)測刪除文本時鍵盤按鍵的用戶事件; 監(jiān)測導(dǎo)致文本域尺寸變化的用戶事件。
4.如權(quán)利要求1所述的網(wǎng)頁文本域高度自適應(yīng)縮放方法,其特征在于,所述獲取文本域?qū)嶋H的高度和文本行數(shù)的步驟包括: 為監(jiān)測到的各個用戶事件附加處理事件,并根據(jù)所述處理事件附加單元附加的處理事件,獲取文本域?qū)嶋H高度和文本行數(shù)。
5.如權(quán)利要求4所述的網(wǎng)頁文本域高度自適應(yīng)縮放方法,其特征在于,所述根據(jù)所述處理事件附加單元附加的處理事件,獲取文本域?qū)嶋H高度和文本行數(shù)的步驟包括: 根據(jù)附加的所述處理事件,獲取文本矩形區(qū)域的數(shù)組; 根據(jù)所述文本矩形區(qū)域的數(shù)組,計算文本域的實際高度; 根據(jù)所述文本矩形區(qū)域的數(shù)組,計算文本域當(dāng)前的文本行數(shù)。
6.如權(quán)利要求1所述的網(wǎng)頁文本域高度自適應(yīng)縮放方法,其特征在于,所述內(nèi)核控件為 WebBrowser 控件。
7.—種網(wǎng)頁文本域高度自適應(yīng)縮放裝置,其特征在于,包括: 顯示模塊,用于使用內(nèi)核控件打開帶有文本域的頁面; 腳本模塊,其由JavaScript語言編譯而成,用于監(jiān)測導(dǎo)致頁面文本域中文本發(fā)生變化的用戶事件,并獲取文本域?qū)嶋H的高度和文本行數(shù); 執(zhí)行模塊,用于調(diào)用內(nèi)核控件注入并執(zhí)行所述腳本模塊; 高度設(shè)置模塊,用于根據(jù)所述腳本模塊獲取的文本域的實際高度和文本行數(shù),將文本域顯示的高度設(shè)置成滾動高度和文本行數(shù)。
8.如權(quán)利要求7所述的網(wǎng)頁文本域高度自適應(yīng)縮放裝置,其特征在于,所述腳本模塊進一步包括: 監(jiān)測單元,用于監(jiān)測導(dǎo)致頁面文本域中文本發(fā)生變化的用戶事件; 處理事件附加單元,用于為所述監(jiān)測單元檢測到的各個用戶事件附加處理事件; 獲取單元,根據(jù)所述處理事件附加單元附加的處理事件,獲取文本域?qū)嶋H高度和文本行數(shù)。
9.如權(quán)利要求8所述的網(wǎng)頁文本域高度自適應(yīng)縮放裝置,其特征在于,所述監(jiān)測單元進一步包括: 屬性變化監(jiān)測子單元,用于監(jiān)測除刪除文本的用戶事件以外的所有導(dǎo)致頁面文本域中文本發(fā)生屬性值變化的用戶事件; 刪除文本監(jiān)測子單元,用于監(jiān)測刪除文本時鍵盤按鍵的用戶事件; 尺寸變化監(jiān)測子單元,用于監(jiān)測導(dǎo)致文本域尺寸變化的用戶事件。
10.如權(quán)利要求8所述的網(wǎng)頁文本域高度自適應(yīng)縮放裝置,其特征在于,所述獲取單元進一步包括: 區(qū)域數(shù)組獲取子單元,用于根據(jù)所述處理事件附加單元附加的處理事件,獲取文本矩形區(qū)域的數(shù)組; 高度計算子單元,用于根據(jù)所述文本矩形區(qū)域的數(shù)組,計算文本域的實際高度; 行數(shù)計算子單元,用于根據(jù)所述文本矩形區(qū)域的數(shù)組,計算文本域當(dāng)前的文本行數(shù)。
11.如權(quán)利要求8所述的網(wǎng)頁文本域高度自適應(yīng)縮放裝置,其特征在于,所述腳本模塊還包括: 初始化單元,用于將文本域的高度以及文本域中文本格式設(shè)置為預(yù)設(shè)值。
12.如權(quán)利要求7所述的網(wǎng)頁文本域高度自適應(yīng)縮放裝置,其特征在于,所述內(nèi)核控件為 WebBrowser 控件。
【文檔編號】G06F17/30GK103942202SQ201310019379
【公開日】2014年7月23日 申請日期:2013年1月18日 優(yōu)先權(quán)日:2013年1月18日
【發(fā)明者】陳澤凱 申請人:騰訊科技(深圳)有限公司