用法postMesssage()實現(xiàn)iframe跨域頁面間的信息傳遞__第1頁
用法postMesssage()實現(xiàn)iframe跨域頁面間的信息傳遞__第2頁
用法postMesssage()實現(xiàn)iframe跨域頁面間的信息傳遞__第3頁
用法postMesssage()實現(xiàn)iframe跨域頁面間的信息傳遞__第4頁
全文預覽已結(jié)束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、用法postMesssage()實現(xiàn)iframe跨域頁面間的信息傳遞_ 這篇文章主要介紹了用法postMesssage()實現(xiàn)iframe跨域頁面間的信息傳遞 的相關資料,需要的伴侶可以參考下 由于web同源策略的限制,當頁面用法跨域iframe鏈接時,主頁面與子頁面是無法交互的,這對頁面間的信息傳遞造成了不小的麻煩,經(jīng)過一系列的嘗試,最終我發(fā)覺有以下方法可以實現(xiàn): 1. 子頁面url傳參 簡潔說來就是把全部需要傳遞的參數(shù)加到與主頁面同源的url上,將子頁面重定向到該url,然后主頁面通過iframe的src獵取這些參數(shù) 過程特別簡單,不建議用法這種方法 2. postMessage() po

2、stMesssage()是HTML5供應的一個基于大事的消息傳輸API,可以實現(xiàn)跨文本檔、多窗口、跨域消息傳遞。 postMessage(data,origin)方法接受兩個參數(shù) 1.data:要傳遞的數(shù)據(jù),html5規(guī)范中提到該參數(shù)可以是JavaScript的任意基本類型或可復制的對象,然而并不是全部掃瞄器都做到了這點兒,部分掃瞄器只能處理字符串參數(shù),所以我們在傳遞參數(shù)的時候需要用法JSON.stringify()方法對對象參數(shù)序列化,在低版本IE中引用json2.js可以實現(xiàn)類似效果。 2.origin:字符串參數(shù),指明目標窗口的源,協(xié)議+主機+端口號+URL,URL會被忽視,所以可以不寫

3、,這個參數(shù)是為了平安考慮,postMessage()方法只會將message傳遞給指定窗口,當然假如情愿也可以建參數(shù)設置為*,這樣可以傳遞給任意窗口,假如要指定和當前窗口同源的話設置為/。 發(fā)送消息(子頁面) function sendMessage(param) var url; if (param.url) url = param.url; ; var dataJson = JSON.stringify( type:1, a: param.c, b: param.c, c: param.c, url: url ); window.parent.postMessage(dataJson, *

4、); 由于部分掃瞄器只能處理字符串參數(shù),我們需要先用法JSON.stringfy()將參數(shù)轉(zhuǎn)換為字符串,然后再接收頁面用法JSON.parse()轉(zhuǎn)換回對象。 接收消息 對于子頁面?zhèn)鬟f過來的參數(shù),我們可以通過監(jiān)聽window的message大事來獵取: window.addEventListener(message, function(e) var data = JSON.parse(e.data); switch (data.type) case 1: alert(data.a);break; , false); message大事有幾個重要屬性 1.data:顧名思義,是傳遞來的message 2.source:發(fā)送消息的窗口對象 3.origin:發(fā)送消息窗口的源(協(xié)議+主機+端口號) 通過postMesssage()方法和message大事就可以實現(xiàn)跨域傳遞消息了,需要留意的是,在demo中我們是通過子頁面對父頁面?zhèn)鬟f消息,所以用法的是window.parent發(fā)送,window接收: window.parent.postMessage(dataJson, *); 假如是從主頁面對子頁面就需要對換,用法window發(fā)送,wind

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論