2

我忙于在 safari 中创建博彩公司扩展程序并遇到以下问题。在我的弹出窗口中,我有一个包含一个按钮的 iframe。单击该按钮(提交按钮)时,必须发送以下消息:

window.addEventListener('message', function(e){
    if(e.data.command == 'closeSymbalooBookmarker'){
        window.setTimeout(function(){
            window.close();
        }, 2000);
    }
});

如您所见,这会在 2 秒内关闭弹出框(上面的脚本是在 chrome 扩展中制作的)。

我需要从注入脚本向弹出框发送一条消息,以便我可以在弹出框窗口中关闭弹出框。或者还有其他方法吗?

感谢你。

4

1 回答 1

1

全局页面是接收来自注入脚本的消息的最佳位置。

做这样的事情:

global.js

safari.application.addEventListener('message', handleMessage, false);
function handleMessage(msg) {
    if (msg.name === 'hidepopover') {
        safari.extension.popovers[0].hide()
    }
}

注入的.js

setTimeout(function() {
    safari.self.tab.dispatchMessage('hidepopover');
}, 2000);
于 2013-11-08T12:20:18.967 回答