js 跨域傳遞訊息
阿新 • • 發佈:2018-12-10
傳送訊息html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>跨域訊息傳遞</title>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
window.onload = function () {
document.getElementById('send').onclick = function () {
var msg = document.getElementById('msg').value;
var iframeWindow = document.getElementById('iframe').contentWindow;
iframeWindow.postMessage(msg, "*");//http://target.com/target.html
}
}
</script>
</head>
<body>
<iframe id="iframe" src="http://localhost:8080/C1-Planning/planning/ssoform/handleMessage.html"></iframe>
<input id="msg" type="text" placeholder="請輸入要傳送的訊息" value="這是跨域推送的訊息">
<button id="send">傳送</button>
</body>
</html>
接收訊息html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>跨域訊息傳遞</title>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
if (window.addEventListener) {
window.addEventListener("message", handleMessage, false);
} else {
window.addEventListener("onmessage", handleMessage); //For IE8
}
function handleMessage(event) {
event = event || window.event;
if (event.source !== window.parent)
return;
// if (event.origin === 'http://source.com') {
// }
document.getElementById('msg').innerHTML = event.data;
}
</script>
</head>
<body>
<div>
<h2>target.html,以下是接收到的訊息:</h2>
<section id="msg">
</section>
</div>
</body>
</html>