问题背景:
我通常会将我的浏览器一夜之间停在我的梦幻棒球直播评分页面上。第二天,浏览器总是缓慢而且经常崩溃。
经过一番调查后,我确信这是由网站每1秒更新一次cookie引起的。如果我在网站的域上打开了5个标签(我经常这样做),它会每秒更新cookie 5次。
调试:
我使用Firefox 4.0与firebug和firecookie。
会话cookie名为“ fsr.a ”并包含* nix时间戳。我相信它被称为“预见触发器”,它是某种广告软件。
您可以在此处看到它(无需登录):http://www.cbssports.com/
Cookie似乎是由此文件设置的:http://sports.cbsimg.net/js/phase2-min-v0047.js
THE FIX:
我尝试过Adblocking它,但这打破了网站。我尝试编写一个Greasemonkey脚本来对抗它,但我对JS还不够好。我显然无法阻止域中的所有cookie。
只需使用Greasemonkey脚本在正确的方向上寻找想法或指针。
修改
我想知道我是否可以使用Greasemonkey更改定时器变量来更频繁地更新cookie?
作为参考,我相信这是负责“ fsr.a ”cookie的代码:
var FSR = {
version: "5.3.0",
date: "11/11/2009",
enabled: true,
files: "http://images.cbssports.com/script/foresee/",
id: "7alXWMyc064b1ROgR/DloA==",
sites: [{
path: /\w+-?\w+\.(com|org|edu|gov|net)/
}, {
path: ".",
domain: "default"
}]
};
function fsr$setAlive() {
var a = new Date().getTime();
document.cookie = "fsr.a=" + a + ";path=/" + ((FSR.site.domain) ? ";domain=" + FSR.site.domain + ";" : ";")
}(function () {
if (window != window.top) {
return
}
function g(k) {
if (typeof k == "object") {
var l = k.constructor.toString().match(/array/i);
return (l != null)
}
return false
}
var e = FSR.sites;
for (var h = 0, a = e.length; h < a; h++) {
var c;
if (!g(e[h].path)) {
e[h].path = [e[h].path]
}
for (var j = 0, b = e[h].path.length; j < b; j++) {
if (c = document.location.href.match(e[h].path[j])) {
FSR.siteid = h;
FSR.site = FSR.sites[FSR.siteid];
if (!FSR.site.domain) {
FSR.site.domain = c[0]
} else {
if (FSR.site.domain == "default") {
FSR.site.domain = false
}
}
if (!FSR.site.name) {
FSR.site.name = c[0]
}
var d = ["files", "js_files", "image_files", "html_files"];
for (var h = 0, f = d.length; h < f; h++) {
if (FSR.site[d[h]]) {
FSR[d[h]] = FSR.site[d[h]]
}
}
break
}
}
if (c) {
break
}
}
if (!window["fsr$timer"]) {
fsr$setAlive();
window["fsr$timer"] = setInterval(fsr$setAlive, 1000)
}
})();
答案 0 :(得分:0)
您似乎需要注册并登录该网站才能设置该Cookie。我不会这样做,所以我无法测试修复。
但是,看看那个JS,下面的一个或多个应该可以使用Greasemonkey:
clearInterval (unsafeWindow["fsr$timer"]); unsafeWindow["fsr$timer"] = null;
unsafeWindow["fsr$setAlive"] = function () {}
更糟糕的是: