如果没有互联网,我打印时会中止Google Analytics

时间:2015-02-12 09:58:42

标签: javascript browser printing google-analytics

我无法在网上找到具体的内容。 问题是:

当用户的计算机没有互联网连接并尝试加载Google Analytics时,页面会等待大约1.5分钟,具体取决于浏览器的自然时间。

对于禁止连接到Google并且仅允许连接到Web服务器的网络,这是一个问题。我们很有可能通过这种设置迎合客户。

现在,当用户正在等待来自www.google-analytics.com/analytics.js的回复时,用户按下我们的打印按钮,这会执行一些css内容来创建页面的打印格式,然后调用Javascript窗口.print(),浏览器现在在显示打印面板之前等待Google Analytics的回复。在Chrome和Firefox上测试。

如果在按下打印按钮时仍在加载请求,我正在寻找中止请求的方法。

Google Analytics代码段。

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXX-Y', 'auto');  // Creates a tracker.
ga('send', 'pageview');             // Sends a pageview.


<input id="clickMe" type="button" value="print" onclick="print();"/> function print(){ window.print() }

我尝试将其转换为旧的Google Analytics并添加了对ajax函数变量的中止调用,但是,它仍然没有中止。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用print执行window.stop()回调时禁用所有待处理的请求。根据{{​​3}}:

  

stop()方法完全等同于单击浏览器中的停止按钮。由于脚本的加载顺序,stop()方法无法停止加载包含它的文档,但它将停止加载大图像,新窗口和其他加载延迟的对象。

不幸的是,旧版本的Internet Explorer似乎不支持此方法,因此您可能还需要使用document.execCommand('Stop');

在线发现的这篇文章提供了有关此功能的更多详细信息:MDN

希望它有所帮助!

相关问题