5

我已经编写了一些代码,这些代码应该在发生这种情况时监视对控制台的修改document.cookie并打印到控制台。

var handler = {
        set: function(target, property, value) {
            console.log("in proxy");
            if (property === "cookie") {
                console.log(`cookie is being modified with val ${value}`);
            }
            return Reflect.set(...arguments);
        }
    }
window.document = new Proxy(document, handler);

但是,似乎文档对象实际上并没有改变。(它仍然是未经代理的版本)。因此,代理永远不会捕获对document.cookie.

相反,如果我想在 上设置代理document.cookie,那似乎也是不可能的,因为无法捕获赋值操作,而只能捕获/设置属性。

平台:Chrome 67.0.3396.79

4

0 回答 0