#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"
}