окно.Расположение.href не работает в Safari

#javascript #html #safari

#javascript #HTML #safari

Вопрос:

Почему это не будет работать в Safari?

 <script language="javascript" type="text/javascript">
function changeUrl(url) {
  window.location.href='http://google.com';
  return false;
}
</script>

<form action="#" onsubmit="changeUrl(this)" />
  <input type="Submit" value="Go" />
</form>
  

Ответ №1:

Safari, похоже, не нравится, когда при вызове функции возникает возвращаемое значение false. Если вы переместите его в свой onsubmit как onsubmit=»OpenPop(this.action);возвращает false;», то Safari будет работать без проблем.

Редактировать: чтобы улучшить ответ, сам onsubmit должен возвращать false, поэтому OpenPop, возвращающий false, недостаточно. Вы могли бы просто заставить его выполнить onsubmit=»return OpenPop(this.action);» хотя.

Ответ №2:

Возможно, это сработает:

 <script>
function popitup(url) {
    newwindow=window.open(url,'name','height=200,width=150');
    if (window.focus) {newwindow.focus()}
    return false;
}

// -->
</script>
  

Тогда используйте этот HTML:

 <a href="popupex.html" onclick="return popitup('popupex.html')">Link to popup</a>
  

Комментарии:

1. И, конечно, вы могли бы просто запустить его «onload» вместо «onclick».

2. название моего метода ввело в заблуждение, я не пытаюсь открыть новое окно, просто перейдите по новому URL

Ответ №3:

Я смог заставить его работать в Safari, используя этот код.

 if (app.Name == "Safari") {
window.location ="your-url-here"
}