鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ postMesage 被多次觸發(fā)

postMesage 被多次觸發(fā)

1.按鈕點(diǎn)擊的時(shí)候會(huì)給iframe子頁面?zhèn)髦担谝淮吸c(diǎn)擊的,子頁面收到一次信息,
第二次點(diǎn)擊的時(shí)候,子頁面就收到兩條信息,這個(gè)按鈕點(diǎn)第三次的時(shí)候,子頁面收到三次信息。在不刷新頁面的情況下,第幾次點(diǎn)擊,子頁面就收到幾次消息。
`
sendMessageToChildren: function (data, id) {

        this.log('發(fā)送數(shù)據(jù)到游戲頁面')
        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('游戲面進(jìn)入監(jiān)聽');
        var _this = this;
        window.addEventListener('message', function (e) {
            _this.log('監(jiān)聽到父頁面數(shù)據(jù)');
            _this.log(e.data);
            callback && callback(e.data);
        }, false);
    },

`

回答
編輯回答
孤星

因?yàn)槟忝空{(diào)用一次getFatherMsg就綁定了一次事件,事件綁定要拿到外面哇

2017年7月21日 04:51