Proxying of [removed]

后端 未结 2 877
囚心锁ツ
囚心锁ツ 2020-12-06 07:41

I need to log setting of document.cookie. I can not redefine cookie property just with document.cookie = {...} So I need to get setter for document.cookie. But

2条回答
  •  遥遥无期
    2020-12-06 08:22

    While I was writing the question I found next code solves my problem:

    var cookie_setter_orig = document.__lookupSetter__("cookie").bind(document);
    var cookie_getter_orig = document.__lookupGetter__("cookie").bind(document);
    Object.defineProperty(document, "cookie", {
      get: function () {
        return cookie_getter_orig();
      },
      set: function (val) {
        console.log(val);
        cookie_setter_orig(val);
      }
    });
    

    But I don't like using deprecated methods, so I hope there is a better solution.

提交回复
热议问题