移動瀏覽器窗口的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,更具體地涉及一種移動瀏覽器窗口的方法。
【背景技術(shù)】
[0002]網(wǎng)頁瀏覽器是一種用于顯示網(wǎng)頁服務(wù)器或文件系統(tǒng)內(nèi)的文件,并使能用戶與這些文件交互的軟件。網(wǎng)頁瀏覽器主要通過超文本傳輸協(xié)議(Hypertext transfer protocol,HTTP)與網(wǎng)頁服務(wù)器交互并獲取網(wǎng)頁。個人電腦上常用的網(wǎng)頁瀏覽器包括微軟公司的Internet Explorer、網(wǎng)景公司的Firefox、谷歌公司的Chrome、蘋果公司的Safari等。
[0003]網(wǎng)頁瀏覽器包括瀏覽器內(nèi)核(也稱為瀏覽器核心)和瀏覽器外殼兩部分。瀏覽器內(nèi)核也就是網(wǎng)頁瀏覽器所采用的渲染引擎,其負責網(wǎng)頁內(nèi)容的獲取、網(wǎng)頁編寫語法的解釋、以及網(wǎng)頁顯示方式的計算等。不同的瀏覽器內(nèi)核對網(wǎng)頁編寫語法的解釋不同,因此同一網(wǎng)頁在具有不同瀏覽器內(nèi)核的網(wǎng)頁瀏覽器里的渲染(或顯示)效果通常是不同的。瀏覽器內(nèi)核通常由諸如C、C++之類的編程語言實現(xiàn)。瀏覽器外殼是一個面向用戶的界面,用于向用戶提供網(wǎng)頁瀏覽器能夠?qū)崿F(xiàn)的各種功能,包括菜單、工具欄等。在瀏覽器外殼中,有些功能需要利用瀏覽器內(nèi)核來實現(xiàn),比如保存網(wǎng)頁上的圖片;而有些功能不需要利用瀏覽器內(nèi)核來實現(xiàn),比如前進、后退功能。瀏覽器外殼通常由諸如C#、C++之類的編程語言結(jié)合諸如Java Script、VB Script之類的腳本語言實現(xiàn)。
[0004]網(wǎng)頁瀏覽器分為原生瀏覽器和套殼瀏覽器兩種。原生瀏覽器是指諸如微軟公司的Internet Explorer、網(wǎng)景公司的Firefox、谷歌公司的Chrome、蘋果公司的Safari等的擁有完整獨立內(nèi)核的瀏覽器。套殼瀏覽器是指在原生瀏覽器的瀏覽器內(nèi)核上添加自定義的包含多種輔助功能的瀏覽器外殼,并改變其名稱與外觀的瀏覽器,如360瀏覽器、騰訊QQ瀏覽器、搜狗瀏覽器等。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供了一種移動瀏覽器窗口的方法。
[0006]根據(jù)本發(fā)明實施例的移動瀏覽器窗口的方法,用于瀏覽器外殼完全由腳本語言實現(xiàn)的網(wǎng)頁瀏覽器。該移動瀏覽器窗口的方法包括:當檢測到鼠標事件時,瀏覽器外殼判斷鼠標事件是否是請求移動瀏覽器窗口的窗口移位事件;當判斷鼠標事件是窗口移位事件時,瀏覽器外殼將鼠標事件通知給瀏覽器核心;以及瀏覽器核心響應(yīng)于鼠標事件而移動瀏覽器窗口。
[0007]通過本發(fā)明,在瀏覽器外殼完全由腳本語言實現(xiàn)的情況下,可以自由移動和縮放瀏覽器窗口。
【附圖說明】
[0008]從下面結(jié)合附圖對本發(fā)明的【具體實施方式】的描述中可以更好地理解本發(fā)明,其中:
[0009]圖1是根據(jù)本發(fā)明實施例的移動瀏覽器窗口的方法的流程圖;
[0010]圖2是根據(jù)本發(fā)明第一實施例的步驟S102的子步驟的流程圖;
[0011]圖3是根據(jù)本發(fā)明第二實施例的步驟S102的子步驟的流程圖。
【具體實施方式】
[0012]下面將詳細描述本發(fā)明的各個方面的特征和示例性實施例。在下面的詳細描述中,提出了許多具體細節(jié),以便提供對本發(fā)明的全面理解。但是,對于本領(lǐng)域技術(shù)人員來說很明顯的是,本發(fā)明可以在不需要這些具體細節(jié)中的一些細節(jié)的情況下實施。下面對實施例的描述僅僅是為了通過示出本發(fā)明的示例來提供對本發(fā)明的更好的理解。本發(fā)明決不限于下面所提出的任何具體配置和算法,而是在不脫離本發(fā)明的精神的前提下覆蓋了元素、部件和算法的任何修改、替換和改進。在附圖和下面的描述中,沒有示出公知的結(jié)構(gòu)和技術(shù),以便避免對本發(fā)明造成不必要的模糊。
[0013]為了能夠容易地更新網(wǎng)頁瀏覽器的瀏覽器外殼并且使網(wǎng)頁瀏覽器能夠呈現(xiàn)期望的效果,發(fā)明人完全利用腳本語言來實現(xiàn)瀏覽器外殼(具有這種瀏覽器外殼的網(wǎng)頁瀏覽器也稱為套殼瀏覽器)。在這種情況下,用戶將無法移動瀏覽器窗口和/或改變?yōu)g覽器窗口的尺寸。因此,需要提供一種用于瀏覽器外殼完全由腳本語言實現(xiàn)的網(wǎng)頁瀏覽器的移動瀏覽器窗口的方法。
[0014]圖1是根據(jù)本發(fā)明實施例的移動瀏覽器窗口的方法的流程圖。如圖1所示,該移動瀏覽器窗口的方法包括:S102,當檢測到鼠標事件時,瀏覽器外殼判斷鼠標事件是否是請求移動瀏覽器窗口的窗口移位事件;S104,當判斷鼠標事件是窗口移位事件時,瀏覽器外殼將鼠標事件通知給瀏覽器核心;以及S106,瀏覽器核心響應(yīng)于鼠標事件而移動瀏覽器窗口。
[0015]這里,將鼠標左鍵在瀏覽器窗口中單擊、鼠標左鍵在瀏覽器窗口中單擊并且在鼠標左鍵處于單擊狀態(tài)的同時移動鼠標、鼠標左鍵在瀏覽器窗口中雙擊、鼠標右鍵在瀏覽器窗口中單擊、鼠標右鍵在瀏覽器窗口中單擊并且在鼠標右鍵處于單擊狀態(tài)的同時移動鼠標、鼠標右鍵在瀏覽器窗口中雙擊等動作統(tǒng)稱為鼠標事件。將鼠標左鍵在瀏覽器窗口中單擊、和鼠標左鍵在瀏覽器窗口中單擊并且在鼠標左鍵處于單擊狀態(tài)的同時移動鼠標的動作稱為鼠標左鍵單擊事件。將鼠標左鍵在瀏覽器窗口中雙擊的動作稱為鼠標左鍵雙擊事件。將鼠標右鍵在瀏覽器窗口中單擊的動作稱為鼠標右鍵單擊事件。
[0016]這里,不定義指代鼠標右鍵在瀏覽器窗口中單擊并且在鼠標右鍵處于單擊狀態(tài)的同時移動鼠標的動作的鼠標右鍵單擊事件、和指代鼠標右鍵在瀏覽器窗口中雙擊的動作的鼠標右鍵雙擊事件,因為這里認為這兩種鼠標事件不會觸發(fā)網(wǎng)頁瀏覽器的任何能夠被用戶感知的動作。
[〇〇17]如果鼠標左鍵單擊事件或鼠標左鍵雙擊事件能夠使得瀏覽器窗口移動和/或瀏覽器窗口的尺寸放大或者縮小,則該鼠標左鍵單擊事件或鼠標左鍵雙擊事件是用于請求瀏覽器核心移動瀏覽器窗口的窗口移位事件。
[0018]在包括瀏覽器外殼由諸如C#、C++之類的編程語言結(jié)合諸如Java Script、VB
Script之類的腳本語言實現(xiàn)的網(wǎng)頁瀏覽器的情況中,存在位于瀏覽器窗口上側(cè)的工具條、位于瀏覽器窗口下側(cè)、左側(cè)和右側(cè)的邊框。由于瀏覽器窗口中的工具條和邊框是通過諸如C#、C++之類的編程語言實現(xiàn)的,所以鼠標左鍵在瀏覽器窗口中的工具條或邊框上的單擊與移動會使得瀏覽器外殼移動瀏覽器窗口或改變?yōu)g覽器窗口的尺寸(放大或縮小瀏覽器窗口的尺寸),并且鼠標左鍵在瀏覽器窗口中的工具條上的雙擊會使得瀏覽器外殼放大或縮小瀏覽器窗口的尺寸。另外,當鼠標左鍵在瀏覽器窗口中的除工具條和邊框以外的區(qū)域中單擊時,如果單擊的位置正好是瀏覽器窗口中的文件鏈接、功能按鈕等會觸發(fā)瀏覽器窗口顯示新內(nèi)容的位置,則瀏覽器窗口將顯示不同于當前內(nèi)容的新內(nèi)容;相反,如果單擊的位置正好是瀏覽器窗口中的除文件鏈接、功能按鈕等的不會觸發(fā)瀏覽器窗口顯示新內(nèi)容的位置,則瀏覽器窗口的顯示內(nèi)容不會發(fā)生改變。
[0019]在瀏覽器外殼完全由腳本語言實現(xiàn)的網(wǎng)頁瀏覽器的情況中,在瀏覽器窗口中的任一區(qū)域發(fā)生的鼠標事件并不必然導(dǎo)致瀏覽器窗口的移動或尺寸改變,因為瀏覽器外殼并不能僅通過其自身來實現(xiàn)瀏覽器窗口的移動或尺寸改變,而需要與瀏覽器內(nèi)核配合才能實現(xiàn)瀏覽器窗口的移動或尺寸改變。在本實施例中,需要預(yù)先定義瀏覽器窗口中的預(yù)定區(qū)域,只有相應(yīng)的鼠標事件發(fā)生在該預(yù)定區(qū)域中時,瀏覽器外殼才能判定該鼠標事件是窗口移位事件并將該鼠標事件通知給瀏覽器內(nèi)核,由瀏覽器內(nèi)核實現(xiàn)瀏覽器窗口的移動或尺寸改變。
[0020]圖2是根據(jù)本發(fā)明第一實施例的步驟S102的子步驟的流程圖。如圖2所示,在瀏覽器外殼檢測到鼠標事件后,通過以下處理來判斷檢測到的鼠標事件是否是窗口移位事件:S1022A,判斷鼠標事件是鼠標左鍵單擊事件、鼠標右鍵單擊事件、還是鼠標左鍵雙擊事件;S1024A,當判斷鼠