素材巴巴 > 程序开发 >

Vue进阶(九十二):应用 postMessage 实现窗口通信

程序开发 2023-09-03 11:47:04

文章目录

  • 三、拓展阅读

  • 一、拓展阅读

    在前端应用中,窗口间通信应用场景很多,比如弹出qq登录认证窗。在这里插入图片描述

    二、postMessage 语法

    window.postMessage(msg,targetOrigin)
     

    注意⚠️postMessage要通过window对象调用!因为这里的window不只是当前window!大部分使用postMessage的时候,都不是本页面的window,而是其他网页的window!如:

    1. iframecontentWindow
    2. 通过window.open方法打开新窗口的window
    3. window.opener

    如果你使用postMessage时没有带window,就是用的本页面的window来调用它。

    2.1 参数说明

    msg

    这是要传递的消息。它可以是一切javascript参数,如字符串,数字,对象,数组,而不是和json一样只局限于字符串。

    targetOrigin

    这个参数称作“目标域”,注意⚠️,是目标域不是本域!比如,你想在2.com的网页上往1.com网页上传消息,那么这个参数就是“http://1.com/”,而不是2.com.

    另外,一个完整的域包括:协议,主机名,端口号。如:http://g.cn:80/

    window.open方法会返回一个窗口对象,使用这个对象可以向子窗口发送消息,而子窗口可以通过window.opener向父窗口发送消息,示例如下:

    // index.html
     
     
     
    // test.html
     
     
     

    由于postMessage是通过网络协议,所以不能以直接在浏览器以打开html的方式进行调试。而是应该放在服务器上,走网络协议。

    三、拓展阅读


    标签:

    素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。