Javascript Google Analytics不从FireFox上的iFrame发送页面视图

Javascript Google Analytics不从FireFox上的iFrame发送页面视图,javascript,firefox,iframe,google-analytics,Javascript,Firefox,Iframe,Google Analytics,我们已经编写了一个小部件,打算供我们的客户在他们的网站上使用。客户通过向其站点上的页面添加脚本标记来导入我们的小部件。然后,我们的脚本创建一个iframe(与父级相同的原点),并在iframe内部加载代码库的其余部分 我们希望能够使用google analytics在iframe内外进行跟踪。为此,我们首先在iframe外部初始化GA(使用自定义GA对象名+跟踪器),以获取GA生成的用户clientId。然后,我们使用postMessage在iframe中发送此信息,然后在iframe中初始化g

我们已经编写了一个小部件,打算供我们的客户在他们的网站上使用。客户通过向其站点上的页面添加脚本标记来导入我们的小部件。然后,我们的脚本创建一个iframe(与父级相同的原点),并在iframe内部加载代码库的其余部分

我们希望能够使用google analytics在iframe内外进行跟踪。为此,我们首先在iframe外部初始化GA(使用自定义GA对象名+跟踪器),以获取GA生成的用户clientId。然后,我们使用postMessage在iframe中发送此信息,然后在iframe中初始化ga(不同的自定义ga全局名称+跟踪器名称)

这一切都在Chrome上运行良好,即Safari、Mobile Safari。然而,在FireFox(v28)中,从iframe内部发送的页面视图似乎都没有被接收到

检查时,ga对象似乎已正确初始化,但似乎没有向google发送任何内容

如有任何建议,将不胜感激

//myGa is the custom named ga global

            window.myGa('create', cfg.accountId, {
                'name'          : 'myga',
                'clientId'      : cfg.clientId,
                'storage'       : 'none',
                'cookieDomain'  : 'none'
            });
            window.myGa('myga.send', 'pageview', {
                'page'  : '/my/page',
                'title' : 'My Test Page'
            });
已解决:

问题在于我们创建iframe的方式。它导致checkProtocolTask在analytics.js中失败

缩小的检查协议任务:

    function Oa() {
        var a = M[B][E];
        if ("http:" != a && "https:" != a) throw "abort";
    }
请澄清:

    //M[B][E] replaces document.location.protocol
在大多数浏览器中,它被称为“http:”并通过测试,但在FireFox中,它被称为“javascript:”并没有通过测试

解决方案是使用ga“set”方法覆盖任务实现

    window.myGa('myga.set', 'checkProtocolTask', function(){});
(如果不使用自定义名称,请将myGa替换为“ga”,将myGa.set替换为“set”)

应用此覆盖解决了问题