Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为document.cookie定义getter_Javascript - Fatal编程技术网

Javascript 为document.cookie定义getter

Javascript 为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.cookie等默认对象定义getter

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;