茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    HTML5中使用postMessage實(shí)現(xiàn)兩個網(wǎng)頁間傳遞數(shù)據(jù)
    來源:易賢網(wǎng) 閱讀:1345 次 日期:2016-07-04 15:10:53
    溫馨提示:易賢網(wǎng)小編為您整理了“HTML5中使用postMessage實(shí)現(xiàn)兩個網(wǎng)頁間傳遞數(shù)據(jù)”,方便廣大網(wǎng)友查閱!

    這篇文章主要為大家詳細(xì)介紹了利用HTML5里的window.postMessage在兩個網(wǎng)頁間傳遞數(shù)據(jù)的相關(guān)資料,postMessage API的功能是可以讓你在兩個瀏覽器窗口或iframe之間傳遞信息數(shù)據(jù),對postMessage感興趣的小伙伴們可以參考一下

    估計很少人知道HTML5 APIS里有一個window.postMessage API。window.postMessage的功能是允許程序員跨域在兩個窗口/frames間發(fā)送數(shù)據(jù)信息?;旧?,它就像是跨域的AJAX,但不是瀏覽器跟服務(wù)器之間交互,而是在兩個客戶端之間通信。讓我們來看一下window.postMessage是如何工作的。除了IE6、IE7之外的所有瀏覽器都支持這個功能。

    數(shù)據(jù)發(fā)送端

    首先我們要做的是創(chuàng)建通信發(fā)起端,也就是數(shù)據(jù)源”source”。作為發(fā)起端,我們可以open一個新窗口,或創(chuàng)建一個iframe,往新窗口里發(fā)送數(shù)據(jù),簡單起見,我們每6秒鐘發(fā)送一次,然后創(chuàng)建消息監(jiān)聽器,從目標(biāo)窗口監(jiān)聽它反饋的信息。

    JavaScript Code

    //彈出一個新窗口   

    var domain = 'http://scriptandstyle.com';   

    var myPopup = window.open(domain    

                + '/windowPostMessageListener.html','myWindow');   

    //周期性的發(fā)送消息   

    setInterval(function(){   

     var message = 'Hello!  The time is: ' + (new Date().getTime());   

     console.log('blog.local:  sending message:  ' + message);   

            //send the message and target URI   

     myPopup.postMessage(message,domain);   

    },6000);   

    //監(jiān)聽消息反饋   

    window.addEventListener('message',function(event) {   

     if(event.origin !== 'http://scriptandstyle.com') return;   

     console.log('received response:  ',event.data);   

    },false);   

    這里我使用了window.addEventListener,但在IE里這樣是不行的,因為IE使用window.attachEvent。如果你不想判斷瀏覽器的類型,可以使用一些工具庫,比如jQuery或Dojo。

    假設(shè)你的窗口正常的彈出來了,我們發(fā)送一條消息——需要指定URI(必要的話需要指定協(xié)議、主機(jī)、端口號等),消息接收方必須在這個指定的URI上。如果目標(biāo)窗口被替換了,消息將不會發(fā)出。

    我們同時創(chuàng)建了一個事件監(jiān)聽器來接收反饋信息。有一點(diǎn)極其重要,你一定要驗證消息的來源的URI!只有在目標(biāo)方合法的情況才你才能處理它發(fā)來的消息。

    如果是使用iframe,代碼應(yīng)該這樣寫:

    JavaScript Code

    //捕獲iframe   

    var domain = 'http://scriptandstyle.com';   

    var iframe = document.getElementById('myIFrame').contentWindow;   

    //發(fā)送消息   

    setInterval(function(){   

     var message = 'Hello!  The time is: ' + (new Date().getTime());   

     console.log('blog.local:  sending message:  ' + message);   

            //send the message and target URI   

     iframe.postMessage(message,domain);    

    },6000);   

    確保你使用的是iframe的contentWindow屬性,而不是節(jié)點(diǎn)對象。

    數(shù)據(jù)接收端

    下面我們要開發(fā)的是數(shù)據(jù)接收端的頁面。接收方窗口里有一個事件監(jiān)聽器,監(jiān)聽“message”事件,一樣,你也需要驗證消息來源方的地址。消息可以來自任何地址,要確保處理的消息是來自一個可信的地址。

    JavaScript Code

    //響應(yīng)事件   

    window.addEventListener('message',function(event) {   

     if(event.origin !== 'http://davidwalsh.name') return;   

     console.log('message received:  ' + event.data,event);   

     event.source.postMessage('holla back youngin!',event.origin);   

    },false);   

    上面的代碼片段是往消息源反饋信息,確認(rèn)消息已經(jīng)收到。下面是幾個比較重要的事件屬性:

    source – 消息源,消息的發(fā)送窗口/iframe。

    origin – 消息源的URI(可能包含協(xié)議、域名和端口),用來驗證數(shù)據(jù)源。

    data – 發(fā)送方發(fā)送給接收方的數(shù)據(jù)。

    這三個屬性是消息傳輸中必須用到的數(shù)據(jù)。

    使用window.postMessage

    跟其他很web技術(shù)一樣,如果你不校驗數(shù)據(jù)源的合法性,那使用這種技術(shù)將會變得很危險;你的應(yīng)用的安全需要你對它負(fù)責(zé)。window.postMessage就像是PHP相對于JavaScript技術(shù)。window.postMessage很酷,不是嗎?

    以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助

    更多信息請查看網(wǎng)頁制作
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機(jī)號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)