JavaScript Code復(fù)制內(nèi)容到剪貼板
- var xhr = new XMLHttpRequest(); if (typeof xhr.withCredentials === undefined) {
JavaScript Code復(fù)制內(nèi)容到剪貼板
- window.postMessage("Hello, world", "porta");
第一個(gè)參數(shù)包括要發(fā)送的數(shù)據(jù),第二個(gè)參數(shù)是消息傳送的目的地。要發(fā)送消息給iframe,可以再相應(yīng)iframe的contentWindow中調(diào)用postMessage,代碼如下:
JavaScript Code復(fù)制內(nèi)容到剪貼板
- document.getElementsByTagName("iframe")[0].contentWindow.postMessage("Hello, world", "cha");
監(jiān)聽消息事件
JavaScript Code復(fù)制內(nèi)容到剪貼板
- window.postMessage("Hello, world", "porta");
消息事件是一個(gè)擁有data(數(shù)據(jù))和origin(源)屬性的DOM事件。data屬性是發(fā)送方傳遞的實(shí)際消息,而origin屬性是發(fā)送來源。
JavaScript Code復(fù)制內(nèi)容到剪貼板
- var originWhiteList = ["porta", "game", ""]; function checkWhiteList(origin) { for (var i=0; i<originWhiteList.length; i++) { if (origin === originWhiteList[i]) { return true; } } return false; } function messageHandler(e) { if (checkWhiteList(e.origin)) { processMessage(e.data); } else {
postMessage API可以適用于同源和非同源通信,鑒于它的一致性,在同源文檔間通信時(shí)也推薦適用postMessage。
JavaScript Code復(fù)制內(nèi)容到剪貼板
- if(window!=window.top)
- {
- window.top.location=location;
- }
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- var a = new Uint8Array([8,6,7,5,3,0,9]); var xhr = new XMLHttpRequest(); xhr.open("POST", "/data/", true); console.log(a); xhr.send(a.buffer);
XMLHttpRequest Level 2也會(huì)公開二進(jìn)制響應(yīng)數(shù)據(jù)。將responseType屬性值設(shè)置為text、document、arraybuffer或blob來控制 有response屬性返回的對(duì)象類型。如果想要查看HTTP響應(yīng)體包含的原始字節(jié),需要將responseTyper屬性值設(shè)為arraybuffer或blob。