Я хочу изменить все ссылки, назначенные на window.location
. Поэтому я предполагаю, что location
имеет геттер & сеттер. Вот почему я клонировал его & тогда я переопределять реальный window.location
:не удается переопределить сеттер и getter of window.location
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