Я использую window.history.replaceState(), чтобы изменить строку запроса файла HTML, к которому был обращен доступ, используя файл: /// C:/...История replaceState больше не работает в Chrome для локального файла
Это работало в Chrome, Internet Explorer и FireFox, но больше не работает в Chrome. Не уверен, когда он перестает работать. У меня Chrome 45.0.2454.85. Он по-прежнему работает в других 2 браузерах.
Я получаю:
Uncaught SecurityError: Failed to execute 'replaceState' on 'History': A history state object with URL 'file:///C:/Users/Michael/Desktop/test.html?Q=NewQueryString' cannot be created in a document with origin 'null'.
Извините, но это не работает в любой организованной скрипку. Вы можете скопировать код в локальный HTML-файл, чтобы увидеть его для себя:
<html>
<body>
<button onclick="clickme()">Click me</button>
<script>
function clickme() {
window.history.replaceState({ "html": undefined, "pageTitle": "NewTitle"}, "", "?Q=NewQueryString");
}
</script>
</body>
</html>
Очевидно, что я мог бы провести это на сервере, но пытается сохранить простой. Это простая доска для справки, которую мы используем в Git. Он обращается к стороннему веб-сервису для получения данных. Любые идеи по работе с ошибкой.
какой версия, т.к. для меня thats рабочий –
Chrome 45.0.2454.85 не работает для меня. – Mike
Это испорчено. Я начерпываю все свои приложения в виде локальных HTML-файлов в Chrome. Грустно видеть, что это больше не работает из-за jQuery Mobile, требующего 'replaceState()'. –