瀏覽器中的消息發送設備和接收設備及方法和系統的製作方法
2023-04-25 05:19:16 1
專利名稱:瀏覽器中的消息發送設備和接收設備及方法和系統的製作方法
技術領域:
本發明涉及網絡技術領域,具體涉及一種在瀏覽器中的消息發送設備及方法、消息接收設備及方法、以及在瀏覽器的通信系統及方法。
背景技術:
如今,為了強化Web網頁的表現性能,許多瀏覽器已經開始採用HTML5技術。HTML5技術是包括以往的HTML、CSS和JavaScript在內的一套技術組合。JavaScript是一種在Web開發中經常使用的前端動態腳本技術。在JavaScript中,有一個很重要的安全性限制,被稱為「Same-Origin Policy」(同源策略)。這一策略對於JavaScript代碼能夠訪問的頁面內容做了很重要的限制,即JavaScript只能訪問與包含它的文檔在同一域下的內容。·
JavaScript這個安全策略在進行多iframe或多窗口編程、以及Ajax編程時顯得尤為重要。根據這個策略,例如在baidu. com域名下的頁面中包含的JavaScript代碼,不能訪問在google, com域名下的頁面內容;甚至不同的子域名之間的頁面也不能通過JavaScript代碼互相訪問。對於Ajax的影響在於,通過XMLHttpReques t實現的Ajax請求,不能向不同的域提交請求,例如,在abc. example, com下的頁面,不能向def. example,com提交Ajax請求,等等。然而,當進行一些比較深入的前端編程的時候,不可避免地需要進行跨域操作,這時候「同源策略」就顯得過於苛刻。目前,HTML5為了解決跨域通信問題,引入了一個新的網域間消息傳輸機制postMessage, postMessage允許頁面中的多個iframe或window之間的通信。一些瀏覽器即使還不支持HTML5,但是也將這種網域間消息傳輸機制引入到瀏覽器中。然而,當前並不是所有的瀏覽器都支持HTML5標準,例如IE6和IE7等不僅不支持HTML5,而且也不支持這種網域間消息傳輸機制。因此postMessage消息傳輸機制不能由佔不小市場份額的IE6、IE7採用來進行跨域通信。因此,需要一種能夠考慮到瀏覽器的不兼容性而可靠地進行網頁跨域通信的技術。
發明內容
鑑於上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的消息發送設備及方法、消息接收設備及方法、和瀏覽器的通信系統及通信方法。依據本發明的一個方面,提供了一種消息發送設備,其在瀏覽器中將來自源網頁的消息向目標網頁發送。該消息發送設備包括定製消息發送器,該定製消息發送器通過修改目標網頁的特定屬性值而將要發送的源網頁的消息發送給目標網頁。可選地,本發明的消息發送設備還包括標準消息發送器,其通過網域間消息發送方式將要發送的源網頁的消息發送給目標網頁;以及第一判定器,其判定瀏覽器是否支持網域間消息傳輸機制,當判定瀏覽器支持網域間消息傳輸機制時,將要發送的源網頁的消息傳送至標準消息發送器,當第一判定器判定所述瀏覽器不支持網域間消息傳輸機制時,將要發送的源網頁的消息傳送至所述定製消息發送器。根據本發明的另一方面,提供了一種消息發送方法,其在瀏覽器中將來自源網頁的消息向目標網頁發送,該消息發送方法包括步驟通過修改目標網頁的特定屬性值而將要發送的源網頁的消息發送給目標網頁。可選地,本發明的消息發送方法還包括如下步驟判定瀏覽器是否支持網域間消息傳輸機制;當判定所述瀏覽器支持網域間消息傳輸機制時,將要發送的源網頁的消息通過網域間消息發送方式將要發送的源網頁的消息發送給目標網頁;以及當判定所述瀏覽器不支持網域間消息傳輸機制時,利用所述通過修改目標網頁的特定屬性值而將要發送的源網頁的消息發送給目標網頁來發送消息。根據本發明的又一方面,本發明提供一種消息接收設備,其在瀏覽器中從目標網頁接收來自源網頁的消息,該消息接收設備包括定製消息接收器,其定時檢查目標網頁的 特定屬性值是否發生變化,如果所述特定屬性值發生變化,則處理該特定屬性值以獲得來自源網頁的消息。可選地,本發明的消息接收設備還包括標準消息接收器,其以網域間消息接收方式來接收來自源網頁的消息;和第二判定器,其判定瀏覽器是否支持網域間消息傳輸機制,當判定瀏覽器支持網域間消息傳輸機制時,由標準消息接收器來接收來自源頁面的消息,當第二判定器判定所述瀏覽器不支持網域間消息傳輸機制時,由定製消息接收器接收來自源頁面的消息。根據本發明的又一方面,本發明提供一種消息接收方法,其使瀏覽器中的目標網頁接收來自源網頁的消息,該消息接收方法包括步驟定時檢查目標網頁的特定屬性值是否發生變化,如果特定屬性值發生變化,則處理該特定屬性值以獲得來自源網頁的消息。可選地,本發明的消息接收方法還包括如下步驟判定瀏覽器是否支持網域間消息傳輸機制;當判定瀏覽器支持網域間消息傳輸機制時,以網域間消息接收方式來接收來自源網頁的消息,以及當判定所述瀏覽器不支持網域間消息傳輸機制時,定時檢查目標網頁的特定屬性值是否發生變化,如果特定屬性值發生變化,則處理該特定屬性值以獲得來自源網頁的消息。根據本發明的又一方面,本發明提供一種瀏覽器的通信系統,其用於源網頁與目標網頁之間的通信,其中源網頁和目標網頁分別包括前面所述本發明的消息發送設備;以及前面所述的本發明的消息接收設備。根據本發明的再一方面,本發明提供一種瀏覽器的通信方法,其用於源網頁與目標網頁之間的通信,該通信方法包括前面所述的本發明的消息發送方法;以及前面所述的本發明的消息接收方法。利用本發明,可以使得不支持HTML5標準所提出的網域間消息傳輸機制的瀏覽器也能夠實現跨域通信。另外,本發明比較安全、可以傳輸大量數據類型,並且使用簡單。上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其它目的、特徵和優點能夠更明顯易懂,以下特舉本發明的具體實施方式
。
通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對於本領域普通技術人員將變得清楚明了。附圖僅用於示出優選實施方式的目的,而並不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖I示出了根據本發明一種實施方式的瀏覽器中的消息發送設備的框圖;圖2示出了根據本發明一種實施方式的瀏覽器的消息發送方法的流程圖;圖3示出了根據本發明一種實施方式的瀏覽器中的消息接收設備的框圖.;圖4示出了根據本發明的一種實施方式的瀏覽器的消息接收方法的流程圖;圖5示出了根據本發明的一種實施方式的瀏覽器的通信系統的框圖;以及·
圖6示出了根據本發明的一種實施方式的瀏覽器的通信方法的流程圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這裡闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,並且能夠將本公開的範圍完整的傳達給本領域的技術人員。下面結合附圖具體介紹本發明。圖I示出了根據本發明的一種實施方式的瀏覽器中的消息發送設備的框圖。該消息發送設備用於將源網頁的消息向目標網頁發送。如圖I所示,消息發送設備100包括第一判定器110、標準消息發送器120、和定製消息發送器130。第一判定器110判定瀏覽器是否支持網域間消息傳輸機制,例如HTML5。當判定瀏覽器支持網域間消息傳輸機制時,將要發送的源網頁的消息傳送至標準消息發送器120 ;當第一判定器110判定當前瀏覽器不支持網域間消息傳輸機制時,將要發送的源網頁的消息傳送至定製消息發送器130。標準消息發送器120通過網域間的消息發送方式將要發送的源網頁的消息發送給目標網頁。例如,HTML5採取postMessage應用的方式發送消息。以HTML5中的javascript代碼為例,如果需要向目標網頁發送消息,標準消息發送器120可以利用下面的代碼來進行windowObject. postMessage (data, ' );其中,windowObject表示目標網頁的窗口對象;data表示源網頁待發送的信息,可以直接調用postMessage來發送消息。定製消息發送器130通過修改目標網頁的特定屬性值而將要發送的源網頁的消息發送給目標網頁。其中,表示網域間消息傳輸的特定屬性值可以為window對象的name屬性值或者其它屬性的屬性值,也可以是兩個以上的屬性的屬性值。以javascript代碼為例,如果需要向目標網頁發送消息,定製消息發送器130可以利用下面的代碼來進行windowObject. name=data;其中windowObject表示目標網頁的窗口對象;data表示源網頁待發送的信息,定製消息發生器130通過修改目標頁面窗口對象的name屬性值為待發送消息來實現消息發送。上面圖I所示的瀏覽器中的消息發送設備100既可以用於源網頁和目標網頁位於相同的URL域的情形,又可以用於源網頁和目標網頁位於不同的URL域的情形。例如,源網頁和目標網頁可以是位於同一個域abc. example, com中的不同網頁,也可以源網頁是位於abc. example, com的網頁而目標網頁是位於def. example, com的網頁。另外,可選地,圖I的瀏覽器中的消息發送設備100可以只包括定製消息發送器130。無論目標網頁是否支持網域間消息傳輸機制,例如HTML5。定製消息發送器130都通過修改目標網頁的特定屬性值(例如window對象的name屬性值)而將要發送的源網頁的消息發送給目標網頁。
圖2示出了根據本發明的一種實施方式的瀏覽器的消息發送方法200的流程圖。如圖2所示,該消息發送方法200始於步驟S205,隨後,在步驟S210,判定瀏覽器是否支持網域間消息傳輸機制,例如HTML5,當判定瀏覽器支持網域間消息傳輸機制時,該方法進入步驟S220,其中將要發送的源網頁的消息通過網域間的消息發送方式將要發送的源網頁的消息發送給目標網頁。例如,源網頁可以採取postMessage應用的方式向目標網頁發送消息。當在步驟S210判定當前瀏覽器不支持網域間消息傳輸機制時,則該方法進入步驟S230,其中通過修改目標網頁的特定屬性值而將要發送的源網頁的消息發送給目標網頁。目標網頁的特定屬性值可以為window對象的name屬性值或者其它屬性的屬性值,也可以是兩個以上的屬性的屬性值。在步驟S220或步驟S230之後,本發明的消息發送方法以步驟S235結束。在上面圖2所示的瀏覽器中的消息發送方法200中,源網頁和目標網頁可以位於相同的URL域或者位於不同的URL域。例如,二者可以位於同一個域abc. example, com中的不同網頁,也可以源網頁是位於abc. example, com的網頁而目標網頁是位於def. example,com的網頁。另外,可選地,圖2所示的瀏覽器中的消息發送方法可以只包括步驟通過修改目標網頁的特定屬性值將要發送的源網頁的消息發送給目標網頁。在這種實施方式中,無論目標網頁是否支持網域間消息傳輸機制,都通過修改目標網頁的特定屬性值而將源網頁的消息發送給目標網頁。圖3示出了根據本發明的一種實施方式的瀏覽器中的消息接收設備300的框圖。消息接收設備300使目標網頁接收來自源網頁的消息。如圖3所示,消息接收設備300包括第二判定器310、標準消息接收器320、和定製消息接收器330。第二判定器310判定瀏覽器是否支持網域間消息傳輸機制。當第二判定器310判定瀏覽器支持網域間消息傳輸機制時,由標準消息接收器320來接收來自源頁面的消息;當第二判定器310判定當前瀏覽器不支持網域間消息傳輸機制時,定製消息接收器330接收來自源頁面的消息。標準消息接收器320以網域間的消息接收方式來接收來自源網頁的消息。例如,源網頁與目標網頁支持網域間消息傳輸,則標準消息接收器320可以採取與postMessage相對應的方式接收來自源網頁的消息。以javacript代碼為例,標準消息接收器320以下列方式來接收消息
權利要求
1.一種消息發送設備,適於在瀏覽器中將來自源網頁的消息向目標網頁發送,該消息發送設備包括 定製消息發送器,其通過修改目標網頁的特定屬性值而將要發送的源網頁的消息發送給目標網頁。
2.如權利要求I所述的消息發送設備,其還包括 標準消息發送器,其通過網域間消息發送方式將要發送的源網頁的消息發送給目標網頁;以及 第一判定器,其判定所述瀏覽器是否支持網域間消息傳輸機制,當判定所述瀏覽器支持網域間消息傳輸機制時,將要發送的源網頁的消息傳送至所述標準消息發送器,當第一判定器判定所述瀏覽器不支持網域間消息傳輸機制時,將要發送的源網頁的消息傳送至所述定製消息發送器。
3.如權利要求I或2所述的消息發送設備,其中,源網頁和目標網頁屬於不同的URL域。
4.如權利要求1-3中任何一項所述的消息發送設備,其中,所述特定屬性值為window對象的name屬性值。
5.一種消息發送方法,用於在瀏覽器中將來自源網頁的消息向目標網頁發送,包括步驟 通過修改目標網頁的特定屬性值而將要發送的源網頁的消息發送給目標網頁。
6.根據權利要求5所述的消息發送方法,還包括步驟 判定瀏覽器是否支持網域間消息傳輸機制, 當判定所述瀏覽器支持網域間消息傳輸機制時,將要發送的源網頁的消息通過網域間消息發送方式將要發送的源網頁的消息發送給目標網頁,以及 當判定所述瀏覽器不支持網域間消息傳輸機制時,利用所述通過修改目標網頁的特定屬性值而將要發送的源網頁的消息發送給目標網頁來發送消息。
7.根據權利要求5或6所述的消息發送方法,其中,源網頁和目標網頁屬於不同的URL域。
8.根據權利要求5-7中任何一項所述的消息發送方法,其中,所述目標網頁的特定屬性值為window對象的name屬性值。
9.一種消息接收設備,適於在瀏覽器中從目標網頁接收來自源網頁的消息,該消息接收設備包括 定製消息接收器,其定時檢查目標網頁的特定屬性值是否發生變化,如果所述特定屬性值發生變化,則處理該特定屬性值以獲得來自源網頁的消息。
10.根據權利要求9所述的消息接收設備,還包括 標準消息接收器,其以網域間消息接收方式來接收來自源網頁的消息;和第二判定器,其判定所述瀏覽器是否支持網域間消息傳輸機制,當判定所述瀏覽器支持網域間消息傳輸機制時,由所述標準消息接收器來接收來自源頁面的消息,當第二判定器判定所述瀏覽器不支持網域間消息傳輸機制時,由所述定製消息接收器接收來自源頁面的消息。
11.如權利要求9或10所述的消息接收設備,其中所述源網頁和所述目標網頁屬於不同的URL域。
12.根據權利要求9-11中任一個所述的消息接收設備,其中, 所述標準消息接收器包括 監聽器,其監聽有否來自源網頁的消息;和 觸發器,當有來自源網頁的消息時,觸發並接收該消息, 所述定製消息接收器包括 定時器,其定時檢查目標網頁的特定屬性值是否發生變化且不為空。
13.根據權利要求9-12中任何一項所述的消息接收設備,還包括 消息處理器,其處理所述標準消息接收器或者所述定製消息接收器所接收的消息。
14.如權利要求9-13中任何一項所述的消息接收設備,其中 所述目標網頁的特定屬性值為window對象的name屬性值。
15.一種消息接收方法,用於使瀏覽器中的目標網頁接收來自源網頁的消息,所述消息接收方法包括步驟 定時檢查目標網頁的特定屬性值是否發生變化,如果所述特定屬性值發生變化,則處理該特定屬性值以獲得來自源網頁的消息。
16.根據權利要求15所述的消息接收方法,還包括如下步驟 判定瀏覽器是否支持網域間消息傳輸機制, 當判定所述瀏覽器支持網域間消息傳輸機制時,以網域間消息接收方式來接收來自源網頁的消息,以及 當判定所述瀏覽器不支持網域間消息傳輸機制時,定時檢查目標網頁的特定屬性值是否發生變化,如果所述特定屬性值發生變化,則處理該特定屬性值以獲得來自源網頁的消肩、O
17.根據權利要求15或16所述的消息接收方法,其中所述源網頁和所述目標網頁屬於不同的URL域。
18.根據權利要求15-17所述的消息接收方法,其中 所述目標網頁的特定屬性值為window對象的name屬性值。
19.一種瀏覽器的通信系統,其用於源網頁與目標網頁之間的通信,所述源網頁和目標網頁分別包括 根據權利要求1、3、和4中任何一項所述消息發送設備;以及 根據權利要求9和11-14中任何一項所述消息接收設備。
20.一種瀏覽器的通信系統,其用於源網頁與目標網頁之間的通信,所述源網頁和目標網頁分別包括 根據權利要求2、3、和4中任何一項所述消息發送設備;以及 根據權利要求10和11-14中任何一項所述消息接收設備。
21.一種瀏覽器的通信方法,其用於源網頁與目標網頁之間的通信,該通信方法包括 根據權利要求5所述的消息發送方法;以及 根據權利要求15所述的消息接收方法。
22.一種瀏覽器的通信方法,其用於源網頁與目標網頁之間的通信,該通信方法包括 根據權利要求6-8中任何一項所述的消息發送方法;以及根據權 利要求16-18中任何一項所述的消息接收方法。
全文摘要
本發明公開了一種瀏覽器中的消息發送設備,其包括標準消息發送器,其通過網域間消息發送方式將要發送的源網頁的消息發送給目標網頁;第一判定器,其判定瀏覽器是否支持網域間消息傳輸機制,當判定瀏覽器支持網域間消息傳輸機制時,將要發送的源網頁的消息傳送至標準消息發送器,當第一判定器判定當前瀏覽器不支持網域間消息傳輸機制時,將要發送的源網頁的消息傳送至定製消息發送器;以及定製消息發送器,其通過修改目標網頁的特定屬性值而將要發送的源網頁的消息發送給目標網頁。另外,本發明還提供一種消息發送方法。相應地,本發明還提供一種消息接收設備及方法、一種瀏覽器的通信系統及方法。
文檔編號G06F17/30GK102882982SQ20121040133
公開日2013年1月16日 申請日期2012年10月19日 優先權日2012年10月19日
發明者韓學斌, 黃歡 申請人:北京奇虎科技有限公司, 奇智軟體(北京)有限公司