postMesage 被多次触发

发布于 2022-09-06 05:48:00 字数 836 浏览 14 评论 0

1.按钮点击的时候会给iframe子页面传值,第一次点击的,子页面收到一次信息,
第二次点击的时候,子页面就收到两条信息,这个按钮点第三次的时候,子页面收到三次信息。在不刷新页面的情况下,第几次点击,子页面就收到几次消息。
`
sendMessageToChildren: function (data, id) {

        this.log('发送数据到游戏页面')
        var f_window = document.getElementById(id);
        if (f_window) {
            var url = f_window.src;
        } else {
            this.log('未获取到iframe信息');
            return
        }
        f_window.contentWindow.postMessage(data, url);
    },

//获取父元素传送的值

    getFatherMsg: function (callback) {
        this.log('游戏面进入监听');
        var _this = this;
        window.addEventListener('message', function (e) {
            _this.log('监听到父页面数据');
            _this.log(e.data);
            callback && callback(e.data);
        }, false);
    },

`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉城凉梦凉人心 2022-09-13 05:48:00

因为你每调用一次getFatherMsg就绑定了一次事件,事件绑定要拿到外面哇

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文