專利名稱:一種基于dom與xmpp的網(wǎng)頁即時協(xié)同瀏覽方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種能實現(xiàn)網(wǎng)頁標(biāo)注內(nèi)容和聊天信息的獲取、傳輸及還原的即時協(xié)同瀏覽技術(shù)。尤其涉及一種基于DOM(文檔對象模型Document Object Model)與XMPP(可擴展通訊和表不協(xié)議The Extensible Messaging and Presence Protocol)的網(wǎng)頁即時協(xié)同瀏覽方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,互聯(lián)網(wǎng)已經(jīng)逐漸成為人們生活中不可或缺的一部分。各種互聯(lián)網(wǎng)應(yīng)用也如雨后春筍般出現(xiàn)。互聯(lián)網(wǎng)將人們聯(lián)系在一起,無論是在線娛樂還是網(wǎng)絡(luò)會議等都時常需要提供對互聯(lián)網(wǎng)公共信息的評論交互能力。這種交互能力目前主要是通過即時通訊與協(xié)同瀏覽方式實現(xiàn)。這兩種方式各有優(yōu)缺點。即時通訊以傳遞文本和圖片信息為主,在交流互聯(lián)網(wǎng)上已有的信息時需要用戶進(jìn)行復(fù)制粘貼等操作,使用便捷性較差。協(xié)同瀏覽方式能夠在現(xiàn)有的文檔上直接進(jìn)行標(biāo)注等操作,但目前的協(xié)同瀏覽主要以“發(fā)布-訂閱”方式工作,實時性較差,難以實現(xiàn)即時交流。
發(fā)明內(nèi)容
本發(fā)明的目的在于本發(fā)明將即時通訊與協(xié)同瀏覽方式有機的結(jié)合。使得協(xié)同瀏覽信息以即時通訊方式進(jìn)行傳輸,能夠使得用戶在瀏覽網(wǎng)頁的同時迅速的與另一用戶實現(xiàn)網(wǎng)頁的即時協(xié)同瀏覽。能夠?qū)崿F(xiàn)在網(wǎng)頁任意位置展開對話框,并對頁面進(jìn)行任意標(biāo)注。協(xié)同瀏覽上,本技術(shù)基于HTMLD0M (超文本標(biāo)記語言文檔對象模型HypertextMarkup Language Document Object Model)提取協(xié)同信息,信息傳輸量小,被各主流瀏覽器廣泛支持,并能適應(yīng)用戶不同的顯示終端,確保協(xié)同信息的準(zhǔn)確性。即時通訊上,本技術(shù)采用基于XMPP協(xié)議方式進(jìn)行信息傳輸。XMPP是被各互聯(lián)網(wǎng)公司廣泛采用的開源通訊協(xié)議,能夠與GTalk,MSN的主流即時通訊網(wǎng)絡(luò)進(jìn)行無縫交互。本發(fā)明為了達(dá)到上述目的采用的技術(shù)方案為一種基于DOM與XMPP的網(wǎng)頁即時協(xié)同瀏覽方法,其特征在于該方法包括以下步驟步驟⑴、協(xié)同瀏覽信息的獲??;其中所述的步驟(I)協(xié)同瀏覽信息的獲取與構(gòu)造進(jìn)一步包括步驟(al)、節(jié)點信息獲取;步驟(a2)、文本節(jié)點內(nèi)部位置信息獲取;步驟(a3)、非文本節(jié)點內(nèi)部位置信息獲??;步驟(a4)、標(biāo)注信息獲取。步驟(2)、即時通信的實現(xiàn);其中所述的步驟(2)即時通信的實現(xiàn)進(jìn)一步包括步驟(bl)、傳輸消息的構(gòu)造;、
步驟(b2)、傳輸消息的解析與兼容性。步驟⑶、協(xié)同瀏覽信息的解析。其中所述的步驟(3)協(xié)同瀏覽信息的解析進(jìn)一步包括步驟(Cl)、節(jié) 點位置信息解析;步驟(c2)、節(jié)點內(nèi)部位置信息解析;步驟(c3)、標(biāo)注信息解析。本發(fā)明的優(yōu)勢在于本發(fā)明將即時通訊與協(xié)同瀏覽方式有機的結(jié)合。使得協(xié)同瀏覽信息以即時通訊方式進(jìn)行傳輸,實現(xiàn)優(yōu)勢互補。能夠使得用戶在瀏覽網(wǎng)頁的同時方便快捷的與另一用戶實現(xiàn)網(wǎng)頁的分享、交流。
圖I為簡單的HTML DOM樹。圖2為一次典型的協(xié)同瀏覽過程。
具體實施例方式下面介紹本發(fā)明的具體實施例。本發(fā)明一種基于DOM與XMPP的網(wǎng)頁即時協(xié)同瀏覽方法具體實現(xiàn)如下I協(xié)同瀏覽信息的獲取al.節(jié)點信息獲取DOM是針對HTML和XML文檔的一個API (應(yīng)用程序接口)。DOM描繪了一個層次化的節(jié)點樹,允許開發(fā)人員添加、移除和修改頁面的某一部分。并能獲取對節(jié)點的訪問。如圖
一所示。當(dāng)用戶在網(wǎng)頁上點擊某一位置時,會在該節(jié)點上觸發(fā)點擊(onclick)事件,并且沿著DOM樹一直向上在路徑上各節(jié)點依次觸發(fā),直到冒泡至文檔(Document)節(jié)點。當(dāng)在我們規(guī)定特定情況下觸發(fā)onclick事件時,以堆棧方式將依次觸發(fā)的節(jié)點存儲。由于頁面上的可見節(jié)點都是〈body〉節(jié)點的子節(jié)點,由此可以生成由〈body〉到事件觸發(fā)節(jié)點的唯一路徑。a2.文本節(jié)點內(nèi)部位置信息獲取對于頁面上的文本節(jié)點(
〈a>等內(nèi)含的TEXT_N0DE),需要找出用戶在文本中單擊的具體位置。位置的獲取可以由DOM 2級提供的方法document.createRangeFromPoint ()實現(xiàn)。該方法在用戶點擊鼠標(biāo)的位置創(chuàng)立一個范圍(range)。獲得此range之后,分別改變其前后偏移量檢查range內(nèi)是否能夠包含有效的文字。如果是,則返回range相對于文本節(jié)點的初始偏移量,作為文本節(jié)點內(nèi)部的位置信息。a3.非文本節(jié)點內(nèi)部位置信息獲取對于頁面上的非文本節(jié)點(<img>〈input>等),需要確定用戶點擊事件相對于該元素的偏移信息,可由DOM提供的事件屬性事件X偏移(event. offsetX)和事件Y偏移(event. offsetY)取得。
a4.標(biāo)注信息獲取用戶在網(wǎng)頁上進(jìn)行標(biāo)注的時候,在頁面中插入標(biāo)注層。根據(jù)不同的情況,將標(biāo)注層位置用以上兩種方法之一獲取,或者直接獲取標(biāo)注層相對于整個頁面的偏移量。2即時通訊的實現(xiàn)bl.傳輸消息的構(gòu)造消息的內(nèi)容是通過XMPP 協(xié)議中定義的〈message〉節(jié)點進(jìn)行傳輸?shù)?。除了〈body〉節(jié)點是傳遞文本消息之外,可以在〈message〉節(jié)點中加入更多的子節(jié)點來達(dá)到傳遞協(xié)同瀏覽的位置信息等功能??刹迦胛恢眯畔⒐?jié)點,傳遞協(xié)同瀏覽位置信息。對于JavaScript對象傳遞,可以將JavaScript對象轉(zhuǎn)換為json對象,即一個字符串進(jìn)行傳遞。b2.傳輸消息的解析與兼容性采用與消息構(gòu)造相反的過程,將〈body〉節(jié)點中的信息解析為文本消息,將位置信息中的信息解析為路徑信息。由于采用XMPP通訊協(xié)議,可以直接使用已有的XMPP賬號(無論其屬于是哪一個服務(wù)提供商)進(jìn)行登錄,能快速的將自己的社交圈融入到本系統(tǒng)中來。對于采用XMPP協(xié)議的即時通訊網(wǎng)絡(luò),在解析XMPP傳遞的XML文件的時候,只會解析該網(wǎng)絡(luò)支持的部分。即如果通過本項目與普通的GTalk等用戶通訊,〈message〉節(jié)點中除〈body〉節(jié)點以外的其他子節(jié)點會被自動忽略,消息退化為一個普通的文本消息。不用改變系統(tǒng)即可實現(xiàn)與各主流即時通訊系統(tǒng)的兼容。3協(xié)同瀏覽信息的解析Cl.節(jié)點位置信息解析用戶收到協(xié)同瀏覽信息之后,首先根據(jù)節(jié)點的路徑信息從〈body〉節(jié)點出發(fā)在頁面中迅速查找到與對方相同的節(jié)點,利用各層節(jié)點的偏移(offset)屬性計算出該節(jié)點相對于頁面的偏移量。c2.節(jié)點內(nèi)部位置信息解析根據(jù)節(jié)點類型的不同,計算節(jié)點內(nèi)部偏移量。對于非文本節(jié)點,直接解析X偏移(offset)和Y偏移(offset)屬性。對于計算文本節(jié)點的內(nèi)部相對于父節(jié)點的位置時,需要在文本節(jié)點中根據(jù)獲取的文本節(jié)點前后偏移量,在相應(yīng)位置插入一個空白的〈span〉節(jié)點,通過〈span〉節(jié)點的屬性獲取其對于父節(jié)點的位置,接著刪除〈span〉,恢復(fù)文本節(jié)點原來的結(jié)構(gòu)。c3.標(biāo)注信息解析解析對方發(fā)送的標(biāo)注層信息時,在頁面中插入標(biāo)注層,標(biāo)注層的位置按照以上方法解析。本發(fā)明未詳細(xì)闡述的部分屬于本領(lǐng)域公知技術(shù)。
權(quán)利要求
1.一種基于DOM與XMPP的網(wǎng)頁即時協(xié)同瀏覽方法,其特征在于該方法包括以下步驟 步驟(I)、協(xié)同瀏覽信息的獲取,具體如下 步驟(al)、節(jié)點信息獲?。? 步驟(a2)、文本節(jié)點內(nèi)部位置信息獲??; 步驟(a3)、非文本節(jié)點內(nèi)部位置信息獲??; 步驟(a4)、標(biāo)注信息獲?。? 步驟(2)、即時通信的實現(xiàn),具體如下 步驟(bl)、傳輸消息的構(gòu)造; 步驟(b2)、傳輸消息的解析與兼容性; 步驟(3)、協(xié)同瀏覽信息的解析。
2.根據(jù)權(quán)利要求I所述的基于DOM與XMPP的網(wǎng)頁即時協(xié)同瀏覽方法,其特征在于所述的步驟(3)協(xié)同瀏覽信息的解析進(jìn)一步包括 步驟(Cl)、節(jié)點位置信息解析; 步驟(c2)、節(jié)點內(nèi)部位置信息解析; 步驟(c3)、標(biāo)注信息解析。
全文摘要
一種基于DOM與XMPP的網(wǎng)頁即時協(xié)同瀏覽方法,該方法將即時通訊與協(xié)同瀏覽方式有機的結(jié)合,使得協(xié)同瀏覽信息以即時通訊方式進(jìn)行傳輸,能夠使得用戶在瀏覽網(wǎng)頁的同時迅速的與另一用戶實現(xiàn)網(wǎng)頁的即時協(xié)同瀏覽,能夠?qū)崿F(xiàn)在網(wǎng)頁任意位置展開對話框,并對頁面進(jìn)行任意標(biāo)注。該方法的協(xié)同瀏覽方面,基于DOM提取協(xié)同信息,信息傳輸量小,被各主流瀏覽器廣泛支持,并能適應(yīng)用戶不同的顯示終端,確保協(xié)同信息的準(zhǔn)確性;該方法的即時通訊方面,采用基于XMPP方式進(jìn)行信息傳輸,XMPP是被各互聯(lián)網(wǎng)公司廣泛采用的開源通訊協(xié)議,能夠與GTalk,MSN的主流即時通訊網(wǎng)絡(luò)進(jìn)行無縫交互。
文檔編號G06F17/30GK102637193SQ20121004465
公開日2012年8月15日 申請日期2012年2月23日 優(yōu)先權(quán)日2012年2月23日
發(fā)明者張炯, 徐毅, 李哲豪 申請人:北京航空航天大學(xué)