国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      網(wǎng)頁(yè)到工具欄的通信的制作方法

      文檔序號(hào):6385318閱讀:178來源:國(guó)知局
      專利名稱:網(wǎng)頁(yè)到工具欄的通信的制作方法
      網(wǎng)頁(yè)到工具欄的通信
      背景技術(shù)
      許多web瀏覽器支持工具欄,工具欄或者擴(kuò)展了瀏覽器的功能性或者簡(jiǎn)化了瀏覽器中的功能的使用。例如,一組web服務(wù)的經(jīng)營(yíng)者可以提供幫助用戶使用web服務(wù)的工具欄。這樣的工具欄可以包含執(zhí)行搜索的搜索框、在語(yǔ)言間進(jìn)行翻譯的翻譯按鈕、和用來向用戶通知在經(jīng)營(yíng)者提供的電子郵件服務(wù)上的進(jìn)入的消息的電子郵件通知器。工具欄典型地通過詢問或檢查網(wǎng)頁(yè)而與網(wǎng)頁(yè)進(jìn)行通信。例如,工具欄上的翻譯功能可以通過檢查頁(yè)面或者頁(yè)面的元數(shù)據(jù)或URL而得知頁(yè)面是以何種語(yǔ)言寫成的。地圖功能可以通過檢查頁(yè)面并尋找看起來具有地址語(yǔ)法的文本而確定頁(yè)面上是否有可以被映射的地址。在網(wǎng)頁(yè)和工具欄之間通信的這種技術(shù)為被動(dòng)式的頁(yè)面或者沒有意識(shí)到工具欄的存在的頁(yè)面工作。然而,存在某些情況,在其中工具欄發(fā)起的對(duì)網(wǎng)頁(yè)的檢查使得某些功能的實(shí)現(xiàn)很困難或者不能實(shí)行。

      發(fā)明內(nèi)容
      與工具欄的通信可以由瀏覽器中的頁(yè)面發(fā)起。網(wǎng)頁(yè)可以具有隱藏的內(nèi)嵌框架(iframe)單元。工具欄可以訂閱針對(duì)內(nèi)嵌框架的裝載(onload)事件(或其它類型的事件)。當(dāng)頁(yè)面上的代碼(例如,ECMA-262腳本、或“JavaScript”)想要與瀏覽器通信時(shí),它可以使得所述內(nèi)嵌框架導(dǎo)航到某個(gè)統(tǒng)一資源定位符(“URL”)。因?yàn)槭构ぞ邫谟嗛喠酸槍?duì)內(nèi)嵌框架的裝載事件,所以使得內(nèi)嵌框架加載(load)頁(yè)面導(dǎo)致了工具欄的裝載處理程序被調(diào)用。所述處理程序可訪問導(dǎo)致該裝載事件的URL,因此要被傳達(dá)到瀏覽器的消息可以被包括在該URL中——例如,作為附加到URL末尾的參數(shù)。以這種方式,頁(yè)面可以將信息傳達(dá)到工具欄,以及工具欄可以基于它從頁(yè)面接收到的信息而采取行動(dòng)。通過使用類似的技術(shù),工具欄也可以與網(wǎng)頁(yè)進(jìn)行通信。例如,網(wǎng)頁(yè)可以訂閱內(nèi)嵌框架的裝載事件。當(dāng)工具欄想要向網(wǎng)頁(yè)發(fā)送消息時(shí),工具欄可以使內(nèi)嵌框架加載URL。因?yàn)槭咕W(wǎng)頁(yè)訂閱了內(nèi)嵌框架的裝載事件,因此當(dāng)工具欄使得內(nèi)嵌框架加載URL時(shí),該動(dòng)作調(diào)用網(wǎng)頁(yè)的裝載處理程序。工具欄可以將消息合并進(jìn)URL中,由此當(dāng)網(wǎng)頁(yè)的裝載處理程序接收到該URL時(shí)將該消息傳達(dá)給在網(wǎng)頁(yè)上的代碼。各種類型的工具欄動(dòng)作可以通過頁(yè)面發(fā)起的通信來實(shí)施。例如基于web的游戲可以向工具欄發(fā)送通知以便使工具欄將其傳達(dá)給用戶,或者當(dāng)用戶達(dá)到某些得分里程碑時(shí)可以指令工具欄顯示視覺獎(jiǎng)勵(lì)(例如,金星、鉆石等等)。作為另一個(gè)例子,購(gòu)物和/或支付網(wǎng)站可以為用戶保存貨幣余額,并可以將該余額傳達(dá)給工具欄,以使得工具欄可以顯示用戶的余額。作為再一個(gè)例子,網(wǎng)站可以查詢工具欄以便找出什么工具欄應(yīng)用被安裝,以及網(wǎng)站可以給用戶提供或不提供機(jī)會(huì)來根據(jù)這些應(yīng)用是否已經(jīng)被安裝而安裝這些應(yīng)用。前文僅僅是可以通過使用頁(yè)面發(fā)起的到工具欄的通信而執(zhí)行的動(dòng)作的一些例子,而這里的主題并不限于這些例子。本概要被提供來以簡(jiǎn)化的形式介紹概念的選擇,這些概念在下面的詳細(xì)說明中被進(jìn)一步描述。本概要既不打算確認(rèn)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不打算被使用來限制所要求保護(hù)的主題的范圍。


      圖1是示例性瀏覽器的框圖,其中瀏覽器和工具欄間的通信可以通過使用這里描述的技術(shù)進(jìn)行。圖2是其中工具欄與網(wǎng)頁(yè)進(jìn)行通信的示例性系統(tǒng)的流程圖。圖3是其中網(wǎng)頁(yè)可以與瀏覽器工具欄進(jìn)行通信的示例性過程的流程圖。圖4是可以結(jié)合這里描述的主題的實(shí)現(xiàn)而被使用的示例性組件的框圖。
      具體實(shí)施例方式許多瀏覽器都支持工具欄,工具欄或者擴(kuò)展了瀏覽器的功能性,或者使得某些功能更易于訪問。早期的工具欄由搜索引擎經(jīng)營(yíng)者提供。這樣的工具欄通過使得用戶更易于在經(jīng)營(yíng)者的網(wǎng)站上執(zhí)行搜索而將業(yè)務(wù)量引導(dǎo)到經(jīng)營(yíng)者的搜索引擎——例如,谷歌(Google)工具欄提供了將用戶輸入到工具欄的搜索框中的查詢轉(zhuǎn)發(fā)到谷歌搜索引擎的搜索框。隨著web應(yīng)用和網(wǎng)頁(yè)變得更加復(fù)雜,工具欄在功能性上不斷增加。例如,工具欄可以掃描網(wǎng)頁(yè)以檢測(cè)郵寄地址的存在,以使得工具欄可以表示愿意去顯示該地址的地圖?;蛘?,工具欄可以檢測(cè)語(yǔ)言上不同于用戶的主要語(yǔ)言的文本的存在,并可以表示愿意去使得網(wǎng)頁(yè)的文本被翻譯成用戶的語(yǔ)言。其它的工具欄功能可以包括提供進(jìn)入的郵件通知、提供當(dāng)前的天氣報(bào)告、提供新聞報(bào)道、以及各種其它的功能。由工具欄執(zhí)行的功能典型地分成兩個(gè)類別。在一種類別中,工具欄與什么頁(yè)面已經(jīng)被加載進(jìn)瀏覽器的窗口或選項(xiàng)卡(tab)中無關(guān)地從web加載信息。例如,工具欄上的天氣功能可以知道天氣服務(wù)的web應(yīng)用編程接口(“API”)的地址,并可以“擊中”該web API的URL來接收當(dāng)前的天氣。工具欄然后可以把這個(gè)天氣顯示給用戶。在這個(gè)類別中的功能可以從web獲得和顯示信息,而不用與已經(jīng)被加載進(jìn)瀏覽器的窗口或選項(xiàng)卡中的內(nèi)容進(jìn)行通信。由工具欄執(zhí)行的第二類別的功能包括如下的那些功能,即其中工具欄檢查已經(jīng)被加載進(jìn)窗口或選項(xiàng)卡中的網(wǎng)頁(yè)的內(nèi)容,然后基于頁(yè)面的內(nèi)容來執(zhí)行某種功能。例如,工具欄上的翻譯按鈕可以通過檢查頁(yè)面的元數(shù)據(jù)(其可以指示頁(yè)面的語(yǔ)言)或者通過將頁(yè)面上的文本的樣本發(fā)送到用于語(yǔ)言識(shí)別分析的翻譯網(wǎng)站而工作。在第二種類別的功能中,工具欄發(fā)起與頁(yè)面的聯(lián)系以便執(zhí)行功能。這里描述的主題提供了一種允許網(wǎng)頁(yè)實(shí)時(shí)發(fā)起與工具欄的聯(lián)系的機(jī)制。沒有允許網(wǎng)頁(yè)與工具欄通信的標(biāo)準(zhǔn)的方式,因此這里描述的技術(shù)有效地提供了一種類型的API來允許這種類型的通信。為了允許網(wǎng)頁(yè)發(fā)起與工具欄的聯(lián)系,網(wǎng)頁(yè)可以包括隱藏的內(nèi)嵌框架。內(nèi)嵌框架是超文本標(biāo)記語(yǔ)言(“HTML”)的某種構(gòu)造。在內(nèi)嵌框架對(duì)瀏覽器顯示的視覺內(nèi)容沒有做出貢獻(xiàn)的意義上說,其可以是隱藏的。然而,內(nèi)嵌框架可以加載URL,還可以生成事件。當(dāng)HTML內(nèi)嵌框架加載URL時(shí),內(nèi)嵌框架生成裝載事件。為了使工具欄從頁(yè)面接收消息,工具欄訂閱內(nèi)嵌框架的裝載事件。在內(nèi)嵌框架加載URL時(shí)生成的裝載事件觸發(fā)了工具欄的裝載處理程序,并且還為所述處理程序提供被加載的URL。因此,在網(wǎng)頁(yè)上運(yùn)行的腳本(例如,ECMA-262腳本、或“JavaScript”)可以通過創(chuàng)建具有附加的消息的URL,并使得內(nèi)嵌框架加載所述URL,來將消息傳達(dá)給工具欄。當(dāng)工具欄的裝載處理程序被調(diào)用時(shí),它從URL檢索消息,并可以基于該消息采取行動(dòng)。(這里的主題的描述涉及內(nèi)嵌框架的“裝載”事件。然而,相同的技術(shù)可以通過具有如下性質(zhì)的任何事件而工作,即(a)它可以被頁(yè)面觸發(fā),以及(b)它可以被在web瀏覽器中運(yùn)行的工具欄訂閱。優(yōu)選地但是任選地,事件也會(huì)具有它可以傳遞數(shù)據(jù)的性質(zhì),然而這個(gè)性質(zhì)不是必要的,因?yàn)橐粋鬟_(dá)的數(shù)據(jù)可以被放置在別處的某個(gè)商定的位置中。應(yīng)當(dāng)理解,本描述中對(duì)“裝載”事件的提及僅僅是例子,而這里描述的技術(shù)可以用其它類型的事件來實(shí)施。)
      通過使用類似的過程,工具欄可以發(fā)送消息給網(wǎng)頁(yè)上的代碼。網(wǎng)頁(yè)可以訂閱它自己的內(nèi)嵌框架的裝載事件,以使得內(nèi)嵌框架對(duì)URL的加載調(diào)用該頁(yè)面的裝載處理程序。為了使工具欄向網(wǎng)頁(yè)發(fā)送消息,工具欄創(chuàng)建具有消息的URL,并使得頁(yè)面的內(nèi)嵌框架加載所述URL。URL的加載調(diào)用了頁(yè)面的裝載處理程序,其然后可以從URL檢索該消息?,F(xiàn)在轉(zhuǎn)到附圖,圖1顯示了示例性的瀏覽器,其中瀏覽器和工具欄間的通信可以通過使用這里描述的技術(shù)而進(jìn)行。瀏覽器100是瀏覽器軟件應(yīng)用,諸如INTERNET EXPLORER瀏覽器、Firefox瀏覽器、Chrome瀏覽器、或任何其它適當(dāng)?shù)臑g覽器程序。瀏覽器100提供了導(dǎo)航欄102,其允許用戶指定瀏覽器將要加載的URL104。如果瀏覽器提供選項(xiàng)卡的話,URL104可以在選項(xiàng)卡106中被加載,或者如果瀏覽器不提供選項(xiàng)卡的話,其可以作為瀏覽器窗口中的唯一的頁(yè)面被加載。URL104指向頁(yè)面108,其包含某種類型的內(nèi)容。在圖1中所示的例子中,內(nèi)容是棋盤游戲,然而可以使用任意類型的內(nèi)容。圖1的例子中所示的視覺內(nèi)容包括棋盤110和得分112。除了這個(gè)視覺內(nèi)容,頁(yè)面108還可以包含內(nèi)嵌框架114。在圖1中,內(nèi)嵌框架在虛線內(nèi)被顯示,以便指示——在真實(shí)的瀏覽器中——內(nèi)嵌框架的內(nèi)容可能是不可見的。然而,為了有助于這里的主題的討論,在圖1中顯示了內(nèi)嵌框架的內(nèi)容,然而這樣的內(nèi)容在實(shí)際的實(shí)現(xiàn)中可能是不可見的。內(nèi)嵌框架114包含足夠的HTML代碼來定義和命名內(nèi)嵌框架,以使得它可以被頁(yè)面108上的代碼尋址,也可以被 工具欄116尋址。特別地,內(nèi)嵌框架114包含代碼“〈IFRAMEsrc=” id=> communi frame frameborder=0 style=’display: noneV>,,° 該代石馬定義了具有可尋址的名稱“communiframe”的框架,其在瀏覽器窗口或選項(xiàng)卡內(nèi)是不顯示的。工具欄116是可以被內(nèi)嵌在瀏覽器100中的工具欄,或者是可以作為對(duì)瀏覽器100的擴(kuò)展而被安裝的工具欄。工具欄116提供了各種功能,諸如搜索框118和搜索按鈕120、天氣報(bào)告122和得分報(bào)告124。對(duì)于頁(yè)面108上的內(nèi)容,得分報(bào)告124能夠與所述內(nèi)容進(jìn)行交互。特別地,得分報(bào)告124根據(jù)頁(yè)面108上的游戲的玩家完成得有多好來顯示一定數(shù)量的星星和言語(yǔ)評(píng)級(jí)。在所顯示的例子中,頁(yè)面108可以向工具欄116報(bào)告玩家得分為8,004,由此使得得分報(bào)告124顯示四顆星以及言語(yǔ)指示“大師級(jí)”。下面描述的技術(shù)可以被使用來允許頁(yè)面108上的代碼向工具欄116告知玩家的得分,以使得工具欄可以采取顯示關(guān)于玩家評(píng)級(jí)的圖形和言語(yǔ)指示的行動(dòng)。圖2顯示了其中工具欄與網(wǎng)頁(yè)進(jìn)行通信的示例性系統(tǒng)。頁(yè)面108可以包括視覺內(nèi)容202、代碼204和內(nèi)嵌框架114。視覺內(nèi)容202可以包含文本、圖像、動(dòng)畫、多介質(zhì)或任何其它種類的內(nèi)容。代碼204可以是可由瀏覽器執(zhí)行的一個(gè)或多個(gè)腳本,諸如ECMA-262腳本、或“JavaScripts”。內(nèi)嵌框架114可以是頁(yè)面108的不可見部分,其可以包含諸如以上在圖1中所示并討論的代碼。工具欄116可以包含功能代碼206和事件處理程序208。功能代碼206可以包含實(shí)施工具欄的一個(gè)或多個(gè)功能的代碼。例如,功能代碼可以實(shí)施以上結(jié)合圖1描述的搜索框、天氣報(bào)告特性和得分報(bào)告特性。事件處理程序208可以包含對(duì)由頁(yè)面108生成的裝載事件進(jìn)行響應(yīng)的代碼。如上面所指出的,代碼204可以包括可由瀏覽器執(zhí)行的腳本。還如上面指出的,頁(yè)面108可能想要做的事情之一是將消息傳達(dá)到工具欄116。頁(yè)面108可以通過使用適當(dāng)?shù)拇a來傳達(dá)這樣的消息。傳達(dá)消息的代碼的例子被顯示在方塊210中,其可以是頁(yè)面108中的代碼204的一部分。正如可以看到的,方塊210中的代碼是
      $ ( “#communiframe,,)· attr ( “src,,,http://www. example. com message=hello);
      該代碼將內(nèi)嵌框架的源改變成 URL “http://www.example.com message =hello”,由此使得所述URL被加載進(jìn)內(nèi)嵌框架中。(內(nèi)嵌框架的可尋址的名稱是“communiframe”,這就是上面的代碼通過該名稱來尋址內(nèi)嵌框架的原因)。實(shí)際上,該代碼所做的是將消息“hello”發(fā)送到工具欄(以及發(fā)送到訂閱了內(nèi)嵌框架的裝載事件的任何其它實(shí)體)。頁(yè)面108在它想要向工具欄116發(fā)送消息時(shí)可以執(zhí)行這行腳本。(該URL所指向的實(shí)際內(nèi)容可以是與正在被傳達(dá)的消息無關(guān)的。例如,WWW. example, com可能是指向空白頁(yè)面的“偽’URL。使內(nèi)嵌框架加載URL的目的 主要是觸發(fā)裝載事件,由此將信息傳達(dá)到工具欄)。當(dāng)內(nèi)嵌框架的源被上面的代碼改變時(shí),結(jié)果是在內(nèi)嵌框架114中生成裝載事件。事件處理程序208通過包含對(duì)這個(gè)事件進(jìn)行響應(yīng)的代碼而訂閱該事件。在圖1所示的例子中,事件處理程序208包含在方塊212中所示的代碼,其是
      $ ( “#communiframe,,,document). attr (onload, function ()
      {
      var url = $( “#communiframe,,)· attr ( “src,,);var match = url. match (/. *= (. *) /);if (match) {
      var message = match[I];
      }
      //用來實(shí)施基于消息而執(zhí)行的動(dòng)作的代碼
      I);
      該代碼所做的是如下的短語(yǔ)“$( “communiframe”,document)”指當(dāng)前文檔中的內(nèi)嵌框架(其中“communiframe”是內(nèi)嵌框架的可尋址的名稱)?!癮ttr”是內(nèi)嵌框架的屬性,其變?cè)鞘录秃瘮?shù)。用變?cè)?事件,函數(shù))”來調(diào)用communiframe上的attr對(duì)象意味著當(dāng)內(nèi)嵌框架生成“事件”時(shí),“函數(shù)”將被執(zhí)行。在該情形中,“事件”是“裝載”,而函數(shù)是被內(nèi)聯(lián)(inline)定義的匿名函數(shù)(然而,在另一個(gè)例子中,函數(shù)可以在別處被定義,并且通過符號(hào)名被引用而不是被內(nèi)聯(lián)定義)。這個(gè)例子中的匿名內(nèi)聯(lián)函數(shù)將名為“url”的變量賦值為已經(jīng)被內(nèi)嵌框架加載的URL (其被存儲(chǔ)在標(biāo)為“src”的屬性中)。它然后使用“match(匹配)”方法來提取url字符串中的、在第一個(gè)等號(hào)后出現(xiàn)的部分,并將所述提取的部分放入名為“match”的字符串?dāng)?shù)組中。在該情形中,跟隨在等號(hào)后的部分是“hello”。變量名“message”然后被賦值為等于在“match”字符串?dāng)?shù)組中的第一個(gè)字符串。在這個(gè)例子中,變量“message”將包含字符串“hello”。對(duì)“message”進(jìn)行響應(yīng)的代碼然后被包括在函數(shù)中。(該代碼將被包括在由注解符號(hào)“//”標(biāo)記的地方)。將被包括的實(shí)際代碼取決于工具欄在它接收到消息時(shí)想要做什么。例如,代碼可以包含根據(jù)“message”變量中包含什么字符串而執(zhí)行各種不同動(dòng)作的切換。而且,代碼可以執(zhí)行的一些特定的示例性動(dòng)作在下面結(jié)合圖3被描述。工具欄116執(zhí)行代碼以便執(zhí)行動(dòng)作。應(yīng)當(dāng)指出,消息可以通過使用類似于上面描述的技術(shù)而在相反的方向(B卩,從工具欄116到頁(yè)面108)上被傳送,簡(jiǎn)單而言是通過使用作為頁(yè)面108的一部分的、在方塊212中的事件處理代碼(或類似的代碼)以及使用作為工具欄116的一部分的、在方塊210中的消息發(fā)送代碼(或類似的代碼)來傳送。圖3顯示了其中網(wǎng)頁(yè)可以與瀏覽器工具欄進(jìn)行通信的示例性過程。在轉(zhuǎn)到圖3的描述前,應(yīng)當(dāng)指出,圖3中包含的流程圖是作為例子、參照?qǐng)D1和圖2所示的組件被描述的,然而這個(gè)過程可以在任何系統(tǒng)中被實(shí)行,而并不限于圖1和圖2所示的情景。附加地,圖3中的流程圖顯示了在其中過程的諸階段以特定的次序(如由連接各方塊的線條所指示的)被實(shí)行的例子,但是這個(gè)圖中顯示的各個(gè)階段可以以任意的次序、或者以任意的組合或子組合被執(zhí)行。在302,事件處理代碼可以被包括在工具欄中,其中處理程序響應(yīng)于“裝載”事件而被調(diào)用。在303,消息發(fā)送代碼被包括在頁(yè)面中。例如,圖2中所示的、使得特定的URL被加載到不可見的內(nèi)嵌框架中的代碼可以被包括在頁(yè)面中。在304,頁(yè)面可以被提供到瀏覽器在其上執(zhí)行的計(jì)算機(jī),以使得頁(yè)面可以被加載到瀏覽器中。因此,當(dāng)頁(yè)面中的消息發(fā)送代碼被調(diào)用時(shí),其生成裝載事件,裝載事件使得工具欄中的事件處理代碼被調(diào)用。在306,在頁(yè)面中發(fā)生使得該頁(yè)面發(fā)送消息的動(dòng)作。任意類型的動(dòng)作可以使得消息被發(fā)送。一些示例性的動(dòng)作在下面316-322處被描述。攜帶要被發(fā)送的消息的URL可以被創(chuàng)建。在302處被包括的代碼在308處執(zhí)行,由此使得載有消息的URL被加載到內(nèi)嵌框架中。

      在310,URL到內(nèi)嵌框架中的加載使得內(nèi)嵌框架生成裝載事件,裝載事件調(diào)用工具欄中的處理程序。在312,處理程序從URL中提取消息。在314,處理程序然后可以執(zhí)行附加的代碼以執(zhí)行進(jìn)一步的動(dòng)作。在一個(gè)例子中,被執(zhí)行的進(jìn)一步的動(dòng)作是基于消息的,以使得不同的消息導(dǎo)致不同的動(dòng)作被執(zhí)行。然而,在另一個(gè)例子中,僅僅將URL加載到內(nèi)嵌框架中以輸送消息,在這種情形中,URL不包含消息字符串,或者(如果其確實(shí)包含消息字符串)消息字符串可以被處理程序忽略。(應(yīng)當(dāng)指出,如果用戶的瀏覽器沒有工具欄,或者沒有被裝配來以這里描述的方式接收通信的工具欄,則由內(nèi)嵌框架執(zhí)行的動(dòng)作將沒有不利影響。)。工具欄可以被使用來響應(yīng)于來自頁(yè)面的消息而執(zhí)行任意的動(dòng)作。然而,在316-322,顯示了各種示例性動(dòng)作和情景。一種示例性情景(在316)是頁(yè)面包含游戲,以及頁(yè)面發(fā)送到工具欄的消息指令工具欄在用戶可能在或可能不在同一頁(yè)面時(shí)在某個(gè)未來時(shí)間顯示關(guān)于用戶在游戲中要執(zhí)行某種動(dòng)作的提醒。例如,游戲可能是面向農(nóng)業(yè)的角色扮演游戲,以及實(shí)施游戲的頁(yè)面可能想要周期性地提醒用戶澆灌他或她在游戲中的虛擬莊稼。在這種情形中,頁(yè)面可以使用以上描述的技術(shù)向工具欄發(fā)送“在X小時(shí)后澆灌莊稼”的消息。工具欄可以通過執(zhí)行如下的代碼來對(duì)此消息進(jìn)行響應(yīng),即所述代碼使得諸如“澆灌你的莊稼”這樣的消息在規(guī)定的時(shí)間后被顯示在工具欄上。在這個(gè)例子中,工具欄將基于定時(shí)器到期而采取行動(dòng)。另一個(gè)示例性情景(在318)是更新用于顯示游戲中玩家的成就(achievement)的讀出器。例如,如果頁(yè)面實(shí)施游戲并且包括用來保存玩家的得分的代碼,則工具欄可能想要以某種方式顯示成就級(jí)別,以使得即使游戲正在其中被玩的選項(xiàng)卡是隱藏的或者玩家已經(jīng)導(dǎo)航離開所述頁(yè)面,玩家也可以看到他或她做得有多好。(圖1顯示了這樣的成就指示的例子四顆星和詞語(yǔ)“大師級(jí)別”指示用戶在圖1中顯示的游戲中的成就級(jí)別。)在這種情形中,當(dāng)玩家的得分在頁(yè)面上改變時(shí),得分的改變可以是使得消息發(fā)送代碼被調(diào)用的動(dòng)作。頁(yè)面然后可以創(chuàng)建描述要被顯示的成就級(jí)別的URL。例如,參照?qǐng)D1的例子,消息可以是“四顆星大師級(jí)別(“four_stars_master_class”)”,其可以被包括在 URL “http://www. example.com/q=four_stars_master_class”中。事件處理程序可以包含能解碼這個(gè)消息并能在工具欄上顯示適當(dāng)?shù)某删图?jí)別的代碼。再一個(gè)示例性情景(在320)正更新賬戶余額。例如,頁(yè)面可以是購(gòu)物網(wǎng)站和/或支付服務(wù)的操縱盤(dashboard),以及用戶在賬戶上具有一定量的存款(例如,用于小額支付賬戶的貨幣余額、或用于獎(jiǎng)勵(lì)賬戶的獎(jiǎng)勵(lì)點(diǎn)余額)。工具欄也可以顯示當(dāng)前的余額,這樣即使包含操縱盤的選項(xiàng)卡被隱藏,用戶也可以看見余額。當(dāng)用戶進(jìn)行支付時(shí),在操縱盤上顯示的余額可以更新,這可以使得操縱盤通知工具欄也更新其對(duì)余額的顯示。因此,頁(yè)面可以構(gòu)成包含新的余額的消息,以及頁(yè)面中的消息發(fā)送代碼可以使得這個(gè)消息被發(fā)送到工具欄。工具欄然后可以更新它的余額記錄,且因此可以在工具欄上向用戶顯示他或她的當(dāng)前余額。再一個(gè)示例性情景(在322)是其中工具欄可以確定特定的應(yīng)用是否被安裝(或者安裝在工具欄自身中,或者安裝在用戶機(jī)器上的其它地方),以及頁(yè)面想要知道是否安裝該應(yīng)用。例如,頁(yè)面可以嘗試通過向用戶顯示針對(duì)某個(gè)應(yīng)用的宣傳(promotion)來鼓勵(lì)安裝所述應(yīng)用。然而,頁(yè)面可能不想向已經(jīng)安裝此應(yīng)用的用戶宣傳該應(yīng)用。因此,頁(yè)面可以包含用于有條件地挑選是否顯示消息“現(xiàn)在下載X應(yīng)用”的代碼。所述代碼根據(jù)X應(yīng)用是否已經(jīng)安裝在用戶的機(jī)器上而決定是否印出(print)這個(gè)消息。因此,頁(yè)面向工具欄發(fā)送請(qǐng)求查明該應(yīng)用是否被安裝的消息。工具欄可以采取的行動(dòng)是確定所述應(yīng)用是否被安裝,然后將指示該應(yīng)用是否被安裝的消息發(fā)送回頁(yè)面。頁(yè)面然后可以根據(jù)它接收到的響應(yīng)來顯示或不顯示所述消息。如以上討論的,被使用來允許頁(yè)面到工具欄的通信的相同技術(shù)可以被使用來允許工具欄到頁(yè)面的通信,由此允許工具欄回答頁(yè)面的查詢。(附加于這里描述的技術(shù),允許工具欄到頁(yè)面的通信的任何其它技術(shù)可以被工具欄使用來回答所述頁(yè)面的查詢)。圖4顯示了在其中可以部署這里描述的主題的諸多方面的示例性環(huán)境。計(jì)算機(jī)400包括一個(gè)或多個(gè)處理器402和一個(gè)或多個(gè)數(shù)據(jù)記憶組件404。處理器402典型地是微處理器,諸如在個(gè)人臺(tái)式計(jì)算機(jī)或膝上型計(jì)算機(jī)、服務(wù)器、手持式計(jì)算機(jī)、或另外種類的計(jì)算設(shè)備中發(fā)現(xiàn)的那些微處理器。數(shù)據(jù)記憶組件404是能夠短期或長(zhǎng)期存儲(chǔ)數(shù)據(jù)的組件。數(shù)據(jù)記憶組件(們)404的例子包括硬盤、可拆卸盤(包括光盤和磁盤)、易失性和非易失性隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、閃存、磁帶等等。數(shù)據(jù)記憶組件(們)是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的例子。計(jì)算機(jī)400可以包括顯示器412或與其相關(guān)聯(lián),顯示器412可以是陰極射線管(CRT)監(jiān)視器、液晶顯示(LCD)監(jiān)視器、或任何其它類型的監(jiān)視器。軟件可以被存儲(chǔ)在數(shù)據(jù)記憶組件404中,并且可以在一個(gè)或多個(gè)處理器402上執(zhí)行。這樣的軟件的例子是頁(yè)面和工具欄通信軟件406,其可以實(shí)施上面結(jié)合圖1-3描述的功能性中的一些或所有功能性,然而可以使用任意類型的軟件。軟件406例如可以通過一個(gè)或多個(gè)組件被實(shí)施,所述組件可以是分布式系統(tǒng)中的組件、單獨(dú)的文件、單獨(dú)的函數(shù)、單獨(dú)的對(duì)象、單獨(dú)的代碼行等等。在其中程序被存儲(chǔ)在硬盤上、被加載進(jìn)RAM、并在其處理器上被執(zhí)行的計(jì)算機(jī)(例如,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式計(jì)算機(jī)等等)代表圖4中描繪的情景,然而這里描述的主題并不限于這個(gè)例子。這里描述的主題可以被實(shí)施為存儲(chǔ)在數(shù)據(jù)記憶組件404中的一個(gè)或多個(gè)中并且在處理器402中的一個(gè)或多個(gè)上執(zhí)行的軟件。作為另一個(gè)例子,所述主題可以被實(shí)施為存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上的指令。這樣的指令當(dāng)被計(jì)算機(jī)或其它機(jī)器執(zhí)行時(shí)可以使得計(jì)算機(jī)或其它機(jī)器執(zhí)行方法的一個(gè)或多個(gè)動(dòng)作。用來執(zhí)行動(dòng)作的指令可被存儲(chǔ)在一個(gè)介質(zhì)上,或者可以被散布在多個(gè)介質(zhì)上,這樣使得指令可以共同地出現(xiàn)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上,而不管所有的指令是否碰巧在同一個(gè)介質(zhì)上。術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”不包括信號(hào)本身;也不包括只作為傳播信號(hào)存在的信息。應(yīng)當(dāng)理解,如果這里的權(quán)利要求指的是只以傳播信號(hào)的形式而不是在任何類型的持久性存儲(chǔ)裝置中承載信息的介質(zhì),則這樣的權(quán)利要求將使用術(shù)語(yǔ)“瞬時(shí)的”或“短暫的”(例如,“瞬時(shí)的計(jì)算機(jī)可讀介質(zhì)”、或“短暫的計(jì)算機(jī)可讀介質(zhì)”)。除非權(quán)利要求明顯地將介質(zhì)描述為“瞬時(shí)的”或“短暫的”,否則這樣的權(quán)利要求不應(yīng)當(dāng)被理解成描述只作為傳播信號(hào)或只作為信號(hào)本身存在的信息。另外,應(yīng)當(dāng)指出,“硬件介質(zhì)”或“有形介質(zhì)”包括以物理的有形的形式存在的設(shè)備,諸如RAM、R0M、閃存和盤;這樣的“硬件介質(zhì)”或“有形介質(zhì)”本身不是信號(hào)。而且,“存儲(chǔ)介質(zhì)”是用來存儲(chǔ)信息的介質(zhì)。術(shù)語(yǔ)“存儲(chǔ)”被使用來表示數(shù)據(jù)的持久保持。為了這里的主題的目的,僅僅以傳播信號(hào)的形式存在的信息不被認(rèn)為是“持久地”保留的。因此,“存儲(chǔ)介質(zhì)”包括盤、RAM、R0M等等,但不包括僅以傳播信號(hào)的形式存在的信息,因?yàn)檫@樣的信息沒有被“存儲(chǔ)”。另外,這里描述的任何動(dòng)作(不管在圖上是否被顯示)可以作為方法的一部分被處理器(例如,處理器402中的一個(gè)或多個(gè))執(zhí)行。因此,如果在這里描述動(dòng)作A、B和C,則可以執(zhí)行包括動(dòng)作A、B和C的方法。而且,如果在這里描述A、B和C的動(dòng)作,則可以執(zhí)行包括使用處理器來執(zhí)行A、B和C的動(dòng)作的方法。在一個(gè)示例性環(huán)境中,計(jì)算機(jī)400可以通過網(wǎng)絡(luò)408通信地連接到一個(gè)或多個(gè)其它設(shè)備。在結(jié)構(gòu)上可以類似于計(jì)算機(jī)400的計(jì)算機(jī)410是可被連接到計(jì)算機(jī)400的設(shè)備的例子,然而其它類型的設(shè)備也可以被如此連接。盡管本主題是以特定于結(jié)構(gòu)特征和/或方法動(dòng)作的語(yǔ)言被描述的,但是應(yīng)當(dāng)理解在所附權(quán)利要求中限定的主題不是必然地局限于上述的特定特征或動(dòng)作。相反,上述的特定特征和動(dòng)作是作為實(shí)施權(quán)利要求的示例性形式而公開的。
      權(quán)利要求
      1.一種在網(wǎng)頁(yè)和瀏覽器工具欄之間通信的方法,所述方法包括訂閱(302)被加載進(jìn)瀏覽器(100)的網(wǎng)頁(yè)(108)的內(nèi)嵌框架(114)中的事件,可執(zhí)行指令是所述瀏覽器(100)中的工具欄(I 16)的一部分;接收(310)指示統(tǒng)一資源定位符(URL)已經(jīng)被加載到所述網(wǎng)頁(yè)(108)中的事件;響應(yīng)于所述事件,執(zhí)行(312)所述工具欄(116)中的處理程序(212);以及基于所述事件執(zhí)行(314)動(dòng)作。
      2.權(quán)利要求1的方法,所述網(wǎng)頁(yè)提供游戲,所述網(wǎng)頁(yè)保存玩家在所述網(wǎng)頁(yè)上的得分, 所述網(wǎng)頁(yè)將消息包括在所述URL中并且響應(yīng)于所述得分的改變而將所述消息發(fā)送到所述工具欄,所述消息包括所述得分,所述工具欄響應(yīng)于接收到所述消息而改變成就的視覺指/Jn ο
      3.權(quán)利要求1的方法,所述網(wǎng)頁(yè)提供支付服務(wù)的操縱盤,所述網(wǎng)頁(yè)保存所述支付服務(wù)的用戶的賬戶余額,所述網(wǎng)頁(yè)將消息包括在所述URL中并且響應(yīng)于所述余額的改變而將所述消息發(fā)送到所述工具欄,所述消息包括在所述改變之后的所述余額,所述工具欄響應(yīng)于接收到所述消息而改變所述余額的視覺指示。
      4.權(quán)利要求1的方法,所述網(wǎng)頁(yè)包含有條件地顯示針對(duì)應(yīng)用的宣傳的代碼,所述網(wǎng)頁(yè)與所述工具欄進(jìn)行通信以便確定所述應(yīng)用是否被安裝在所述瀏覽器在其上執(zhí)行的計(jì)算機(jī)上,所述工具欄用所述應(yīng)用是否被安裝的指示進(jìn)行響應(yīng),所述網(wǎng)頁(yè)基于所述指示來挑選是顯示還是不顯示所述宣傳。
      5.一種計(jì)算機(jī)可讀介質(zhì),其具有用來執(zhí)行權(quán)利要求1-4的任一項(xiàng)的方法的計(jì)算機(jī)可執(zhí)行指令。
      6.一種用于在網(wǎng)頁(yè)和瀏覽器工具欄之間進(jìn)行通信的系統(tǒng),所述系統(tǒng)包括存儲(chǔ)器(404);處理器(402);網(wǎng)頁(yè)(108),其被存儲(chǔ)在所述存儲(chǔ)器(404)中,并被加載進(jìn)瀏覽器(100)中,所述網(wǎng)頁(yè) (108)包括內(nèi)嵌框架(114),所述網(wǎng)頁(yè)(108)還包括使得所述內(nèi)嵌框架(114)加載統(tǒng)一資源定位符(URL)的第一代碼(210),當(dāng)所述URL被加載進(jìn)所述內(nèi)嵌框架(114)時(shí),所述內(nèi)嵌框架(114)生成裝載事件;和工具欄組件(116),其被存儲(chǔ)在所述存儲(chǔ)器(404 )中,以及在所述處理器(402 )上執(zhí)行, 所述工具欄組件(116)被安裝在所述瀏覽器(110)中,所述工具欄組件(116)訂閱所述內(nèi)嵌框架(114)的所述裝載事件并使得所述工具欄(116)中的第二代碼(212)響應(yīng)于所述裝載事件來執(zhí)行,所述第二代碼執(zhí)行動(dòng)作。
      7.權(quán)利要求6的系統(tǒng),所述內(nèi)嵌框架是所述瀏覽器并不顯示的不可見的內(nèi)嵌框架。
      8.權(quán)利要求6的系統(tǒng),所述URL包括所述網(wǎng)頁(yè)發(fā)送到所述工具欄的消息,所述第二代碼基于所述消息執(zhí)行所述動(dòng)作。
      9.權(quán)利要求6的系統(tǒng),所述網(wǎng)頁(yè)提供游戲,所述網(wǎng)頁(yè)將消息包括在所述URL中并將所述消息發(fā)送到所述工具欄,所述消息指令所述第二代碼去設(shè)置定時(shí)器,并且響應(yīng)于所述定時(shí)器的到期而在所述工具欄上向所述游戲的玩家顯示在所述游戲中執(zhí)行動(dòng)作的提醒。
      10.權(quán)利要求6的系統(tǒng),所述網(wǎng)頁(yè)提供游戲,所述網(wǎng)頁(yè)保存玩家在所述網(wǎng)頁(yè)上的得分, 所述網(wǎng)頁(yè)將消息包括在所述URL中并且響應(yīng)于所述得分的改變而將所述消息發(fā)送到所述工具欄 ,所述消息包括所述得分,所述第二代碼響應(yīng)于接收到所述消息而在所述工具欄上改變成就的視覺指示。
      全文摘要
      網(wǎng)頁(yè)可以發(fā)起與瀏覽器工具欄的通信。在一個(gè)例子中,網(wǎng)頁(yè)包含不可見的內(nèi)嵌框架、以及使得內(nèi)嵌框架加載特定的統(tǒng)一資源定位符(“URL”)的代碼。當(dāng)內(nèi)嵌框架加載所述URL時(shí),它生成裝載事件。所述工具欄可以訂閱內(nèi)嵌框架的裝載事件,以及可以包含針對(duì)該事件的處理程序。當(dāng)頁(yè)面想要向工具欄發(fā)送消息時(shí),頁(yè)面將消息添加到URL,然后執(zhí)行使得內(nèi)嵌框架加載所述URL的代碼,由此生成裝載事件。工具欄中的處理程序接收裝載事件,并從所述URL中提取消息。所述處理程序然后可以響應(yīng)于所述消息而執(zhí)行附加的代碼來執(zhí)行動(dòng)作。
      文檔編號(hào)G06F9/54GK103049338SQ20121056865
      公開日2013年4月17日 申請(qǐng)日期2012年12月21日 優(yōu)先權(quán)日2011年12月21日
      發(fā)明者B.雷斯勒, G.尼克洛夫, S.庫(kù)里, P.蒙塞爾 申請(qǐng)人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1