У меня был Windows 8.1 jsproject, теперь обновленный до приложения Universal Windows (UAP / UWP).
Ранее эта функция работала, она вызывала как
installLocationProxy(window);
installLocationProxy(document);
function installLocationProxy(obj) {
var descriptor;
var descriptorProto = obj;
do {
descriptor = Object.getOwnPropertyDescriptor(descriptorProto, "location");
descriptorProto = !descriptor && descriptorProto && Object.getPrototypeOf(descriptorProto);
} while (descriptor == null);
if (!descriptor || !descriptor.get || !descriptor.set)
return;
var proxy = new LocationProxy(descriptor.get.call(obj));
Object.defineProperty(obj, "location", {
"get": function () {
return proxy;
},
"set": function (location) {
if (typeof location === 'string' || location && location instanceof String) {
proxy.assign(location, NavigationMethods.Location);
}
else {
return descriptor.set.call(obj, location);
}
}
});
}
но теперь я получаю сообщение об ошибке "Не удается переопределить ненастраиваемое свойство 'location'" в этой строке Object.defineProperty(obj, "location"
.
Во время поиска в Google я обнаружил, что теперь window.location доступен только для чтения и недоступен для записи, поэтому не может быть переопределено.
Для справки это можно проверить здесь https://gist.github.com/zacharytamas/082e538784ebe07e40f9
Но я не уверен, как переопределить свойство window.location
? Кто-нибудь может помочь?