История Javascript.PushState не работает?

У меня есть этот код здесь:

<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

Ответы

Ответ 1

Аргумент URL для pushState должен относиться к текущей странице или абсолютному URL-адресу в вашем собственном домене. Вы не можете перетаскивать государственный кросс-домен - это будет серьезным недостатком безопасности.

Документация MDN говорит:

Новый URL-адрес записи истории задается этим параметром. Обратите внимание, что браузер не будет пытаться загрузить этот URL-адрес после вызова pushState(), но он может попытаться загрузить URL-адрес позже, например, после перезапуска пользователя. Новый URL не обязательно должен быть абсолютным; если он относительный, он разрешен относительно текущего URL-адреса. Новый URL-адрес должен иметь тот же источник, что и текущий URL; в противном случае pushState() выдает исключение. Этот параметр является необязательным; если он не указан, он устанавливает текущий URL-адрес документа.

Параметр URL чаще всего остается пустым или устанавливает относительный URL-адрес на вашем собственном сайте, например #/hello.