web-dev-qa-db-ja.com

replaceState():url ...の履歴状態を元のドキュメントに作成できません

サーバーの_main.js_にある_required/javascripts_にwindow.history.replaceState(null, null, 'about');があります。

次に、aboutページ(サーバーの_/_(root)にあります)に、このページでwindow.history.replaceState(null, null, 'about:me');を使用するリンクがあります。すべて正常に動作しますが、同じ機能でURLとして_about:girlfriend_を使用して別のリンクをクリックすると、次のエラーメッセージが表示されます。

_Uncaught SecurityError: Failed to execute 'pushState' on 'History': A history state object with URL 'about:girlfriend' cannot be created in a document with Origin 'http://my.domain.com'._

ブラウザ(最新バージョンのChrome)がpushStateを使用してこのページにアクセスしようとしていると考える理由がわかりません。また、何度もこのエラーメッセージが表示される理由がわかりません。私はそれを読みました。誰かが私にこれを説明してもらえますか?私はこれに_History.js_を使用しません。

_:_を_-_や_/_などの他の名前に変更しても、このエラーメッセージが表示されないことは特筆に値します。 _:_が機能せず(404ページが見つかりません)、_/_が収まらないため、_-_を使用したいと思います-_:_の方が適しています。

11
Erik

これをローカルで実行しようとしている場合、ローカルとリモートでロードされたページの両方で以下が機能します。

history.replaceState(null,null, window.location.pathname + "your thing here")
7
user5258091