- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Ghostery 实现模拟脚本(代理),这样页面就不会在期望跟踪代码的逻辑上失败。
在我的例子中,我必须编写代码来跟踪 Assets 和出站点击。通常的做法是检查跟踪代码是否已加载(在我的例子中是 _gat
由 ga.js 公开),但如果使用代理,此检查将通过。
对于一些很好且符合预期的用例,但我们在这里处理链接。为了确保链接实际记录到 GA,我将一个函数推送到 _gaq,该函数(假设 ga.js 已正确加载)将被执行。
对于 Ghostery,情况并非如此。我得到的链接不会触发,因为带有 window.location.href = url
的函数不会被执行。
当我查看代理时,我发现它可以为我更改位置,但我必须执行 _gaq.push(['_link', url])
。
我发布了一个 issue并得到了开发人员不应将功能绑定(bind)到第三方脚本的回应。我明白了,这就是为什么在这样做之前我检查了 _gat
是否存在。
最后,我不得不为 Ghostery 做一个特例,并附上他们奇怪的推送,以便链接可以使用它。
您可以在 gist 中查看完整的实现.如果您想重用它并与 IE8 兼容,请确保为 String.trim()
包含一个 polyfill。
我应该如何编写不以任何方式依赖跟踪代码的自定义跟踪逻辑?
使用 timeout
更改 url 是不可能的,因为它可能会破坏慢速连接上的命中。
此外,戳 _gat
对象不是可靠的方法,因为依赖第三方脚本是不好的。
最佳答案
Web 浏览器目前正在构建一个功能来解决这个问题: https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon
这不会在几个月内广泛实现,敬请期待。现在,只需添加一个 setTimeout(function(){location.href=url}, 100) 来捕获错误并且链接仍然有效。
关于javascript - 处理 Ghostery 代理人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22969297/
有时,我的程序会通过代理服务器并读取舞会缓冲区内容来思考更多时间......直到我关闭它们。如何设置程序代码,在几秒钟内如果没有来自服务器的任何答复,则采取另一台服务器? URL url = new
Ghostery 实现模拟脚本(代理),这样页面就不会在期望跟踪代码的逻辑上失败。 在我的例子中,我必须编写代码来跟踪 Assets 和出站点击。通常的做法是检查跟踪代码是否已加载(在我的例子中是 _
require 'rubygems' require 'selenium-webdriver' @p = File.read("proxy.txt") @proxies = @p.split(/::/
我们的应用程序全部采用 HTTPS,但我们从不支持 SSL 的低预算设备获取 mjpeg 流。 因此,这意味着我们可以:我。混合内容并让浏览器崩溃。 (这是 Not Acceptable ,因为我们训
以下是完全有效的 Clojure 代码: (def a (atom nil)) (def b (atom a)) (reset! a b) 它在需要反向引用的情况下甚至很有用。 但是,在 REPL 中
我想知道 git push 是如何工作的。我在代理后面,甚至在我的 PhpStorm 软件中配置它也不起作用。 所以,我想知道它是如何通过网络发送的,我想 HTTP 使用端口 80,HTTPS 使用端
我是一名优秀的程序员,十分优秀!