Вход

Просмотр полной версии : Сторонняя библиотека удаляет window.history.replaceState и window.history.pushState


ZlobnuyGres
06.03.2017, 18:56
Всем привет,
есть проблема надеюсь что есть решение)

Использую библиотеку office.js (https://appsforoffice.microsoft.com/lib/1/hosted/office.debug.js) для того чтобы писать addin к outlook, сам addin это express+angular.1 к которой подключена эта библиотека. но в коде библиотеки вот такое

window.history.replaceState = null;
window.history.pushState = null;
что не позволяет использовать html5 routing а роутинг на хешах вообще не работает если это вызывать из outlook. у меня так же (http://stackoverflow.com/questions/25070176/hyperlink-changes-from-to-20-20-when-clicked-in-excel) Есть ли какой нибудь способ не изменяя код этой библиотеки добиться того чтобы window.history.replaceState window.history.pushState можно было использовать?

ruslan_mart
06.03.2017, 19:19
window.history.replaceState = History.prototype.replaceState;
window.history.pushState = History.prototype.pushState;

или

var f = document.createElement('iframe');
f.onload = function() {
var w = f.contentWindow;

window.history.replaceState = w.history.replaceState;
window.history.pushState = w.history.pushState;

document.body.removeChild(f);
};
f.src = 'javascript:void 0';
f.style.display = 'none';
document.body.appendChild(f);