我想更改分配给window.location
的所有链接。所以我认为location
有getter &二传手。这就是为什么我克隆它&然后我覆盖了真正的window.location
:无法覆盖window.location的setter&getter
var clonedLocation=Object.assign({},window.location);
Object.defineProperty(window, 'location', {
get: function (f) {
return clonedLocation;
},
set:function(o){
if(typeof o==='string'){
o=o+'?id=1';
}
clonedLocation=o;
}
});
};
预期的行为(如果中重写完成的),当你写:
window.location='/go';
脚本应该重定向到/go?id=1
不/go
。
但是实际的行为是此脚本重定向到/go
==>因此,window.location
制定者并没有覆盖,
如何覆盖的window.location
二传手?
见http://stackoverflow.com/questions/2073086/javascript-how-to-intercept-window-location-change – guest271314