将功能从点击事件更改为窗口加载

时间:2015-02-26 19:07:14

标签: javascript postmessage

我正在尝试将postMessage更改为在点击时将邮件发送到iframe,以便在页面加载时发送邮件。

在父页面上:

var el = document.getElementById('button');

var getFontFamily = function(){

    for(var i = 0; i < document.styleSheets.length; i++){
        for(var j = 0; j < document.styleSheets[i].rules.length; j++){

            if(document.styleSheets[i].rules[j].style.fontFamily){
                return document.styleSheets[i].rules[j].style.fontFamily;
            }
        }
    }

    return 'not-found';
};

window.addEventListener('click', function(){
    var data = getFontFamily();

    window.frames[0].postMessage(data, 'http://localhost:3000');

    console.log('Message sent -->');
});

iframe页面包含以下内容以接收postMessage事件。

window.addEventListener('message', function(e){
        document.body.style.fontFamily = e.data;

        console.log('<---Message received');
    }, false);

如何更改此设置以在页面加载时将css从父级加载到子级而不是单击?

当前工作示例:jsfiddle

1 个答案:

答案 0 :(得分:0)

从此处更改您的代码:

window.addEventListener('click', function(){

到此:

window.addEventListener('load', function(){

更新了小提琴:http://jsfiddle.net/nzjfn6u4/2/