摘要:跨文檔消息傳送,有時候也簡稱為,指的是來自不同域的頁面間傳遞消息。接收到消息時,會觸發對象的事件。接受到消息后驗證發送窗口的來源是至關重要的。基本的檢測模式如下。
跨文檔消息傳送(cross-document messaging),有時候也簡稱為XDM,指的是來自不同域的頁面間傳遞消息。例如,www.wrox.com域中的一個頁面與一個位于內嵌框架中的p2p.wrox.com域中的頁面通信。
XDM的核心是
postMessage()方法。在HTML5規范中,除了XDM部分之外的其它部分也會提到這個方法名,但都是為了同一個目的:向另一個地方傳遞數據。對于XDM而言,“另一個地方”指的是包含在當前頁面中的iframe元素,或者由當前頁面彈出的窗口。
postMessage()方法接收兩個參數:一條消息和一個表示消息接收方來自哪個域的字符串。
第二個參數對保障安全通信非常重要,可以防止瀏覽器把消息發送到不安全的地方。來看下面的例子。
var iframWindow = document.getElementById("myframe").contentWindow; iframWindow.postMessage("A secret", "http://www.w3cmm.com");
接收到XDM消息時,會觸發window對象的message事件。這個事件是以異步形式觸發的,因此從發送消息到接受消息(觸發接受窗口的message事件)可能要經過一段時間的延遲。觸發message事件后,傳遞給
onmessage處理程序的事件對象
包含以下三方面的重要信息:
data:作為postMessage()第一個參數傳入的字符串數據。
origin:發送消息的文檔所在的域,例如“http://www.w3cmm.com”。
source:發送消息的文檔的window對象的代理。這個代理對象主要用于在發送上一條消息的窗口中調用postMessage()方法。如果發送消息的窗口來自同一個域,那這個對象就是window。
接受到消息后驗證發送窗口的來源是至關重要的?;镜臋z測模式如下。
EventUtil.addHandler(window, "message", function (event) { //確保發送消息的域是已知的域 if (event.origin == "http://www.w3cmm.com") { //處理接收到的數據 processMessage(event.data); //可選:向來源窗口發送回執 event.source.postMessage("Received!", "http://p2p.w3cmm.com"); } });
還是要提醒大家,event.source大多數情況下只是window對象的代理,并非實際的window對象。不能通過這個代理對象訪問window對象的其它任何信息。使用postMessage()時,最好還是只傳字符串。最佳選擇是先在要傳入的數據上調用JSON.stringify(),通過postMessage()傳入得到的字符串,然后再在onmessage事件處理程序中調用JSON.parse()。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78633.html
摘要:概述同源策略是對代碼能夠操作哪些內容的一條完整的安全限制,也是由提出的一個著名的安全策略。同源策略的目的同源政策的目的,是為了保證用戶信息的安全,防止惡意的網站竊取數據。 [TOC] 1、概述 同源策略是對JavaScript代碼能夠操作哪些WEB內容的一條完整的安全限制,也是由Netscape提出的一個著名的安全策略。所謂同源簡單來說就是三個相同,**1、域名相同2、協議相同3、端口...
摘要:概述同源策略是對代碼能夠操作哪些內容的一條完整的安全限制,也是由提出的一個著名的安全策略。同源策略的目的同源政策的目的,是為了保證用戶信息的安全,防止惡意的網站竊取數據。 [TOC] 1、概述 同源策略是對JavaScript代碼能夠操作哪些WEB內容的一條完整的安全限制,也是由Netscape提出的一個著名的安全策略。所謂同源簡單來說就是三個相同,**1、域名相同2、協議相同3、端口...
摘要:轉自今天來談談前端面試中基本上每次一面都會被問到的一個問題,那就是的新特性了。元素,表示生成密匙。和通過設置和特性,可以將輸入框的數值輸入范圍限定在最低值和最高值之間。一旦為某輸入型控件設置了特性,那么此項必填,否則無法提交表單。 轉自:http://hyuhan.com/2017/07/06/... 今天來談談前端面試中基本上每次一面都會被問到的一個問題,那就是html5的新特性了。...
摘要:腳本編程跨文檔消息傳遞跨文檔消息傳送,簡稱為,指的是來自不同域的頁面間傳遞消息的核心是方法,在規范中,除了部分之外的其他部分也會提到這個方法名,但都是為了同一個目的,向另一個地方傳遞參數。第一個頁面加載時為空 HTML5腳本編程 跨文檔消息傳遞 跨文檔消息傳送,簡稱為XMD,指的是來自不同域的頁面間傳遞消息 XMD的核心是postMessage()方法,在HTML5規范中,除了XDM...
閱讀 644·2023-04-25 15:49
閱讀 3099·2021-09-22 15:13
閱讀 1237·2021-09-07 10:13
閱讀 3467·2019-08-29 18:34
閱讀 2556·2019-08-29 15:22
閱讀 499·2019-08-27 10:52
閱讀 677·2019-08-26 18:27
閱讀 3009·2019-08-26 13:44