花钱买到的技术,chrome扩展 内容页获取原始页面的js变量

1 内容页往原始页面新加脚本,目的是接受来自内容页的消息,并返回js变量

var myScript = document.createElement("script");
myScript.append('window.addEventListener("message", async function(event) { if (event.data.from === "extenstion") { var data = await new Promise(function(resolve) { resolve(window.wx.cgiData); });var message = { "from": "web", "to": "extenstion", "data": window.wx.cgiData };window.postMessage(message, "*"); }});');
document.body.append(myScript);

其中附加的代码格式化后如下

复制代码
window.addEventListener("message", async function(event) {
    if (event.data.from === "extenstion") {
        var data = await new Promise(function(resolve) {
            resolve(window.wx.cgiData);
        });
        var message = {
            "from": "web",
            "to": "extenstion",
            "data": window.wx.cgiData
        };
        window.postMessage(message, "*");
    }
});
复制代码

收到来自内容页的消息后,返回指定js变量

2 内容页新加监听,接受来自原始页的消息

window.addEventListener("message", function(event) {
    if (event.data.from === "web") {
        console.log("cgiData", event.data.data);
    }
});

 

3 给原始页发消息

var message = { "from": "extenstion", "to":"web", "data": "test" };
window.postMessage(message, "*");

 

posted @   simadi  阅读(572)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2013-12-30 vs2012 网站无法使用自定义服务器的解决方法
点击右上角即可分享
微信分享提示