【发布时间】:2015-08-21 12:09:03
【问题描述】:
我正在尝试覆盖 document.cookie,因为我需要控制 cookie 创建,但似乎在 document.cookie 上的 getOwnPropertyDescriptor 没有检索到它的 getter 和 setter(在 chrome 和 firefox 上尝试过)。有人可以解释一下这种行为吗?
https://jsfiddle.net/1363ktwp/7/
var obj={};
// creating a property using document.cookie descriptors
Object.defineProperty(
obj,
"oldCookie",
Object.getOwnPropertyDescriptor(document, "cookie")
);
// setting cookies succesfully
document.cookie="test1=ok;path=/;expires=365;";
document.cookie="test2=ok;path=/;expires=365;";
alert(document.cookie);
Object.defineProperty(document, "cookie", {
get: function () {
return obj.oldCookie;
},
set: function (cookie) {
/*
...preliminar operations
*/
obj.oldCookie = cookie;
}
});
// obj.oldCookie is just a string without getter/setter
// so assignments below doesn't works correctly
document.cookie="test3=ok;path=/;expires=365;";
document.cookie="test4=ok;path=/;expires=365;";
alert(document.cookie);
【问题讨论】:
标签: javascript cookies browser