Javascript 为document.cookie定义getter
我想知道如何为document.cookie等默认对象定义getterJavascript 为document.cookie定义getter,javascript,Javascript,我想知道如何为document.cookie等默认对象定义getter document.__defineGetter__("cookie", function(newv) { console.log('accessing cookie'); //what to return here?? }); 返回document.cookie显然会导致递归 谢谢试试这个: 铬 但是,我不确定这是否会反映更新 Firefox,IE 10 这应该能很好地工作。试试这个: 铬 但是,我不确定这是
document.__defineGetter__("cookie", function(newv) {
console.log('accessing cookie');
//what to return here??
});
返回document.cookie显然会导致递归谢谢试试这个: 铬 但是,我不确定这是否会反映更新 Firefox,IE 10 这应该能很好地工作。试试这个: 铬 但是,我不确定这是否会反映更新 Firefox,IE 10
这应该能很好地工作。试试这样的方法-
var old_cookie = document.cookie;
Object.defineProperty(document, 'cookie', {
get: function() {
console.log('Getting cookie');
return this._value;
},
set: function(val) {
console.log('Setting cookie', arguments);
this._value = val;
return this._value;
}
});
document.cookie = old_cookie;
将getter/setter添加到cookie属性时,它会清除该值,因为描述符不能同时具有访问器和值,因此必须保存旧的cookie值,并在定义访问器后重新分配该值。尝试类似的操作-
var old_cookie = document.cookie;
Object.defineProperty(document, 'cookie', {
get: function() {
console.log('Getting cookie');
return this._value;
},
set: function(val) {
console.log('Setting cookie', arguments);
this._value = val;
return this._value;
}
});
document.cookie = old_cookie;
当您向cookie属性添加getter/setter时,它会清除该值,因为描述符不能同时具有访问器和值,因此您必须保存旧的cookie值,并在定义访问器后重新分配该值。为什么要这样做?如果您使用的浏览器能够成功调用
\uu defineGetter\uu
,您最好使用localStorage
。非标准的、不推荐的我想在每次访问DOM的某些特定属性时编写自己的逻辑。为什么要这样做?如果您使用的浏览器可以成功调用\uu defineGetter\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
,最好使用本地存储。非标准的、不推荐的我希望每次访问DOM的某些特定属性时都编写自己的逻辑。
var old_cookie = document.cookie;
Object.defineProperty(document, 'cookie', {
get: function() {
console.log('Getting cookie');
return this._value;
},
set: function(val) {
console.log('Setting cookie', arguments);
this._value = val;
return this._value;
}
});
document.cookie = old_cookie;