域名:http://localhost:3000/test1.html 向http://localhost:3002/test2.html發送數據html
test1.html:瀏覽器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <iframe id="iframe" src="http://localhost:3002/test2.html" name="myIframe"></iframe> <input type="text" id="msg"> <button id="btn">發送</button> </body> <script> window.onload=function () { var msgDom=document.getElementById('msg'), btn=document.getElementById('btn'); btn.onclick=function () { var msg=msgDom.value; var iframeWin=myIframe.window; iframeWin.postMessage(msg,'http://localhost:3002/test2.html') //h5規範:能夠發送JavaScript的任意基本類型或可複製的對象,但不是全部瀏覽器都兼容,有的 //瀏覽器只能處理字符串,因此須要用JSON.stringify()序列化 //必須是目標窗口,iframeName.window或者window.open } } </script> </html>
test2.html:post
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> test2.html接受數據 </body> <script> window.onload = function() { if(window.addEventListener){ window.addEventListener("message", handleMessage, false); } else{ window.attachEvent("onmessage", handleMessage); } function handleMessage(event) { event = event || window.event; if(event.origin === 'http://localhost:3000') { console.log('接受數據',event.data); } } } </script> </html>