6

在 Firefox 中,可以使用以下...

HTMLDocument.prototype.__defineGetter__("cookie",function (){return "foo=bar";});
HTMLDocument.prototype.__defineSetter__("cookie",function (){});

这不会导致 WebKit 出现任何错误,而且 WebKit 肯定支持__defineGetter__and __defineSetter__,但它不起作用。猜测 WebKit 正在以某种方式保护该属性。

那么,关于如何在 WebKit 中实现相同效果的任何想法?

4

1 回答 1

6

您是否尝试过在文档对象本身而不是原型上定义 getter/setter 对?

document.__defineGetter__("cookie", function() {} );
document.__defineSetter__("cookie", function() {} );

我知道这无关紧要,但我不会低估浏览器的怪癖。即使使用 WebKit。

更新

我在 Chrome 2 中做了一些测试,它似乎只允许定义一个 setter。无论如何,我不确定这种观察对 WebKit 的有效性,因为 Google Chrome 使用与 WebKit 不同的 JavaScript 解释器。

于 2009-06-15T04:38:50.737 回答