1. 程式人生 > >js 跨域傳遞訊息

js 跨域傳遞訊息

傳送訊息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>