ここにこのコードがあります:
<script type="text/javascript">
function goFunction(){
history.pushState("google.ca", "GOOGLE CANADA", "http://www.google.ca");
return event.preventDefault();
}
</script>
そして
<a href="#" onclick="javascript:goFunction();">GO</a>
リンクをクリックすると、エラーログに次のエラーが記録されます。
Uncaught SecurityError: A history state object with URL 'http://www.google.ca/' cannot be created in a document with Origin 'http://cowelllaserhair.com'.
これは次の場所で見ることができます: http://cowelllaserhair.com/test.html
私は何を間違えていますか?
何かを参照する必要がありますか?
ありがとう、J
pushState
へのURL引数は、現在のページ、または独自のドメインの絶対URLに対して相対的でなければなりません。クロスドメイン状態をプッシュすることはできません-これは重大なセキュリティ上の欠陥です。
MDNドキュメント は次のとおりです。
新しい履歴エントリのURLは、このパラメーターによって指定されます。ブラウザーは、pushState()の呼び出し後にこのURLのロードを試行しませんが、ユーザーがブラウザーを再起動した後など、後でURLのロードを試行する場合があることに注意してください。新しいURLは絶対である必要はありません。相対的な場合は、現在のURLを基準にして解決されます。新しいURLは、現在のURLと同じOriginである必要があります。そうでない場合、pushState()は例外をスローします。このパラメーターはオプションです。指定されていない場合は、ドキュメントの現在のURLに設定されます。
URLパラメーターは、ほとんどの場合空白のままにするか、#/hello
などの独自のサイトで相対URLを設定します。