影子DOM里面谷歌分析不起作用(Google analytics inside shadow DOM

2019-09-30 10:50发布

在我的浏览器扩展程序,而不是使用任何HTML页面,阴影正在从后台JS网页添加DOM。

好像正在被推为分析任何事件。

添加扩展为阴影根之后的结构如下所示

现在Chrome扩展的manifest.json样子

"manifest_version": 2,
"content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'",

"background": {
"scripts": ["js/background.js"],
"persistent": true
},

和其他几个背景文件被加载。

在background.js其中所有的DOM元素添加的主文件被加载如下

var mainJS = chrome.extension.getURL("js/chromewindow.js");
            var rawFile = new XMLHttpRequest();
            rawFile.open("GET", mainJS, true);
            rawFile.onreadystatechange = function() {
                if (rawFile.readyState === 4 && (rawFile.status === 200 || rawFile.status === 0)) {
                    var text = rawFile.responseText;
                    chrome.tabs.executeScript(tab.id, {
                        code: text + ";onMyExtensionLoad('" + from + "');"
                    });
                }
            };

在chromewindow.js我添加通常的分析代码,如下所示

var _gaq = _gaq || [];

var ga = document.createElement('script'); 
ga.type = 'text/javascript'; 
ga.async = true;
ga.src = 'https://ssl.google-analytics.com/u/ga_debug.js';
var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);

_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview']);

我还包括下面的代码跟踪的onclick事件

function trackButton(e) 
{
    _gaq.push(['_trackEvent', e.target.id, 'clicked']);
    console.log("Track event called");

};

当我执行这我能找到装载的ga_debug.js进行文件。 然而,由于推荐我找不到像___ utm.gif的任何请求。

有在控制台中没有错误了。

我wounder那里我缺少的东西。 请帮助。

文章来源: Google analytics inside shadow DOM doesn't work