• html5跨域通讯之postMessage的用法


    <!DOCTYPE html>
    <title>标题</title>
    <link rel="stylesheet" href="styles.css">
    <link rel="icon" href="http://apress.com/favicon.ico">
    <script>
    
    var targetOrigin = "http://22527.vhost20.boxcdn.cn";
    
    var defaultTitle = "Portal";
    var notificationTimer = null;
    
    function messageHandler(e) {
        if (e.origin == targetOrigin) {
            notify(e.data);
        } else {
            // ignore messages from other origins
        }
    }
    
    function sendString(s) {
        document.getElementById("widget").contentWindow.postMessage(s, targetOrigin);
    }
    
    
    function notify(message) {
        stopBlinking();
        blinkTitle(message, defaultTitle);
    }
    
    function stopBlinking() {
        if (notificationTimer !== null) {
            clearTimeout(notificationTimer);
        }
        document.title = defaultTitle;
    }
    
    function blinkTitle(m1, m2) {
        document.title = m1;
        notificationTimer = setTimeout(blinkTitle, 1000, m2, m1)
    }
    
    function sendStatus() {
        var statusText = document.getElementById("statusText").value;
        sendString(statusText);
    }
    
    function loadDemo() {
        document.getElementById("sendButton").addEventListener("click", sendStatus, true);
        document.getElementById("stopButton").addEventListener("click", stopBlinking, true);
        sendStatus();
    }
    window.addEventListener("load", loadDemo, true);
    window.addEventListener("message", messageHandler, true);
    
    </script>
    
    <h1>跨域通讯</h1>
    传递信息:<input type="text" id="statusText" value="Online">
    <button id="sendButton">确定</button>
    <br>
    <br>
    <iframe id="widget" src="http://22527.vhost20.boxcdn.cn/postMessageWidget.html"></iframe>
    <p>
        <button id="stopButton">停止标题闪烁</button>
    </p>
    复制代码

    postMessageWidget.html页面的代码

    复制代码
    <!DOCTYPE html>
    <title>标题</title>
    <link rel="stylesheet" href="styles.css">
    <script>
    
    var targetOrigin = "http://www.weixiu0376.cn";
    
    // TODO whitelist array
    
    function messageHandler(e) {
        if (e.origin === "http://www.weixiu0376.cn") {
            document.getElementById("status").textContent = e.data;
        } else {
            // ignore messages from other origins
        }
    }
    
    function sendString(s) {
        window.top.postMessage(s, targetOrigin);
    }
    
    function loadDemo() {
        document.getElementById("actionButton").addEventListener("click",
            function() {
                var messageText = document.getElementById("messageText").value;
                sendString(messageText);
            }, true);
    
    }
    window.addEventListener("load", loadDemo, true);
    window.addEventListener("message", messageHandler, true);
    
    </script>
    <p>显示接收信息: <strong id="status"></strong><p>
    <div>
        <input type="text" id="messageText" value="填写消息内容">
        <button id="actionButton">发送消息</button>
    </div>
    复制代码
    不忘初心,方得始终.....
  • 相关阅读:
    c#类的小小理解
    sql语句:保留要害字的问题.例如 size,text,user等
    c#2005做新闻发布系统心得
    asp 遇到过的问题集锦,附加asp语句添加数据库和生成表,asp命令更改指定文件的文件名,asp值传递的应用091116小结
    dropdownlist控件失去焦点的小应用和函数substr
    获得当前应用程序路径C#03
    模糊查询简单分析,得出sql语句
    20080905经典的DataReader对象解读+几种对数据库的操作的命令,20100111update read db example
    Servlet 容器的工作原理 ( 二 )
    手低眼高 初学者学习Hibernate的方法
  • 原文地址:https://www.cnblogs.com/wjglj/p/4369042.html
Copyright © 2020-2023  润新知