Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Вы попытались просто использовать
window.location = 'url';
В некоторых браузерах, window.location.href
свойство только для чтения, и разве лучший способ не состоит в том, чтобы установить местоположение (даже при том, что технически это должно позволить Вам). Если Вы используете location
свойство самостоятельно, которое должно перенаправить для Вас во всех браузерах.
документация Mozilla имеет довольно подробное объяснение того, как использовать эти window.location
объект.
Вы попробовали это?
Response.Write("<script type='text/javaScript'> window.location = '#myAnchor'; </script>";);
Вы могли также использовать window.location.replace
для перехода к привязке без регистра его в истории браузера:
Этот статья иллюстрирует, как перейти к привязке и использует href в качестве свойства только для чтения.
function navigateNext()
{
if (!window.location.hash)
{
window.location.replace(window.location.href + unescape("#2"))
}
else
{
newItem = nextItem(window.location.hash)
if (document.getElementById(newItem))
{
window.location.replace(stripHash(window.location) + "#" + newItem)
}
else
{
window.location.replace(stripHash(window.location) + "#1")
}
}
}
window.location.href хорошо работает во всех версиях Firefox, как делает document.location.href, я думаю, что существует что-то еще в Вашем коде, который повреждает вещи.
отбрасывание это на пустой странице, если это работает, на который это указывает, существует что-то еще неправильно на Вашей странице.
<script>
window.location.href = 'http://www.google.com/';
</script>
У меня есть та же проблема, и я предполагаю, что это связано с событие .
щелчка, у меня есть функция, которая перемещает браузер в определенную страницу. Я присоединяю ту функцию к некоторым событиям щелчка: в кнопке и в изображении. AlsoI выполняют функцию когда пользовательский Escape нажатия (документ onkeypress событие).
результаты состоят в том, что во всех случаях функция вызвана и выполнена, но только когда существует щелчок, браузер переходит к адресу, который я хочу.
Обновление я получил его работа! с
setTimeout( "location.replace('whatever.html');", 0 );
я не знаю, почему location.replace не работал, когда событие было нажатием клавиши, но с settimeout это работает :)
Обновление Возвращающий false после того, как событие при нажатии Escape, делает работы перенаправления. Если Вы возвращаете true или ничто, за чем браузер не будет следовать
Я не, несомненно, буду следовать за Вами.
я просто попробовал: движение с FF3 к справочник Lua 5.1 (долго и с партией привязок).
Вставка javascript:window.location.href="#2.5"; alert(window.location.href);
в строке поиска, я перешел к правильной привязке, и она отобразила правильный URL. Работы также с полным URL, конечно.
Альтернативный код: javascript:(function () { window.location.href="#2.5"; })();
, Возможно, Вы забыли #. Типичная проблема, также с картами изображения.
Возможно, это - просто опечатка в Вашем сообщении а не в Вашем коде, но это окно и не окно s
Если вы пытаетесь вызвать этот код javascript после события, за которым следует обратный вызов, вы должны добавить в свою функцию еще одну строку:
function JSNavSomewhere()
{
window.location.href = myUrl;
return false;
}
в разметке страницы, элемент управления который вызывает эту функцию по щелчку, должен возвращать значение этой функции
<asp:button ........ onclick="return JSNavSomewhere();" />
. Ложное возвращаемое значение отменяет обратный вызов, и перенаправление теперь будет работать. Почему это работает в IE? Думаю, они думали по-другому, когда отдавали приоритет перенаправлению, а не обратному вызову.
Надеюсь, это поможет!
, пожалуйста, добавьте полный тег javascript script
<script type="text/javascript" language="javascript"></script>
Вы должны добавить return false; после window.location.href, как упомянуто выше.
function thisWorks()
{
window.location.href = "http://www.google.com";
return false;
}
function thisDoesNotWork()
{
window.location.href = "http://www.google.com";
}