对于从css文件加载的损坏图像,GA事件不会被触发

时间:2017-06-07 05:24:08

标签: javascript css google-analytics

我的javascript中有GA代码。 window.addEventListener方法捕获导致404并触发_gaq.push方法的任何损坏的链接或图像。 下面的代码适用于所有损坏的链接/图像,但如果图像来自css文件,它不会触发_gaq调用。 我在浏览器中检查过我的js文件是在我的css文件之前加载的。 下面是加载文件的序列 -

  • -common.js

  • -common.css

  • -xyz

  • -xyz

  • -ga.js:initiator是common.js但是在common.css之后加载

  • broken_image.gif:导致404 - 未被检测到。

以下是我的GA代码 -

var _gaq = _gaq || [];
_gaq.push([ '_setAccount', 'UA-34xxxxx-1' ]);
_gaq.push([ '_trackPageview' ]);

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

window.addEventListener('error', function(e) {
    _gaq.push([ '_trackEvent', '404 myapp', 'Missing Element',
            e.target && e.target.src ? e.target.src : '', 1 ]);

}, true);

url调用失败 -

.myTool {
    background: url("../images/common/my-tool.jpg") no-repeat 0 0;
}

1 个答案:

答案 0 :(得分:2)

onerror事件只需要/支持某些html标记:https://www.w3schools.com/jsref/event_onerror.asp https://www.w3schools.com/jsref/event_onerror_media.asp

并从HTML5 Server-Sent Events发生。

因为“在CSS中”的dowloadables不包含上面提到的任何内容,所以onerror事件永远不会被解雇