windows.location.href, не работающий над Firefox3

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

19
задан Benjamin 6 January 2014 в 11:52
поделиться

12 ответов

Вы попытались просто использовать

window.location = 'url';

В некоторых браузерах, window.location.href свойство только для чтения, и разве лучший способ не состоит в том, чтобы установить местоположение (даже при том, что технически это должно позволить Вам). Если Вы используете location свойство самостоятельно, которое должно перенаправить для Вас во всех браузерах.

документация Mozilla имеет довольно подробное объяснение того, как использовать эти window.location объект.

https://developer.mozilla.org/en/DOM/window.location

34
ответ дан 30 November 2019 в 02:06
поделиться
window.location.hash = "#gallery";
0
ответ дан 30 November 2019 в 02:06
поделиться

Другая опция:

document.location.href ="..."
-2
ответ дан 30 November 2019 в 02:06
поделиться

Вы попробовали это?

Response.Write("<script type='text/javaScript'> window.location = '#myAnchor'; </script>";); 
0
ответ дан 30 November 2019 в 02:06
поделиться

Вы могли также использовать 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")
        }
    }
}
0
ответ дан 30 November 2019 в 02:06
поделиться

window.location.href хорошо работает во всех версиях Firefox, как делает document.location.href, я думаю, что существует что-то еще в Вашем коде, который повреждает вещи.

отбрасывание это на пустой странице, если это работает, на который это указывает, существует что-то еще неправильно на Вашей странице.

<script>
  window.location.href = 'http://www.google.com/';
</script>
1
ответ дан 30 November 2019 в 02:06
поделиться

У меня есть та же проблема, и я предполагаю, что это связано с событие .

щелчка, у меня есть функция, которая перемещает браузер в определенную страницу. Я присоединяю ту функцию к некоторым событиям щелчка: в кнопке и в изображении. AlsoI выполняют функцию когда пользовательский Escape нажатия (документ onkeypress событие).

результаты состоят в том, что во всех случаях функция вызвана и выполнена, но только когда существует щелчок, браузер переходит к адресу, который я хочу.

Обновление я получил его работа! с

setTimeout( "location.replace('whatever.html');", 0 );

я не знаю, почему location.replace не работал, когда событие было нажатием клавиши, но с settimeout это работает :)

Обновление Возвращающий false после того, как событие при нажатии Escape, делает работы перенаправления. Если Вы возвращаете true или ничто, за чем браузер не будет следовать

2
ответ дан 30 November 2019 в 02:06
поделиться

Я не, несомненно, буду следовать за Вами.
я просто попробовал: движение с FF3 к справочник Lua 5.1 (долго и с партией привязок).
Вставка javascript:window.location.href="#2.5"; alert(window.location.href); в строке поиска, я перешел к правильной привязке, и она отобразила правильный URL. Работы также с полным URL, конечно.
Альтернативный код: javascript:(function () { window.location.href="#2.5"; })();

, Возможно, Вы забыли #. Типичная проблема, также с картами изображения.

2
ответ дан 30 November 2019 в 02:06
поделиться

Возможно, это - просто опечатка в Вашем сообщении а не в Вашем коде, но это окно и не окно s

4
ответ дан 30 November 2019 в 02:06
поделиться

Если вы пытаетесь вызвать этот код javascript после события, за которым следует обратный вызов, вы должны добавить в свою функцию еще одну строку:

function JSNavSomewhere()
{
    window.location.href = myUrl;
    return false;
}

в разметке страницы, элемент управления который вызывает эту функцию по щелчку, должен возвращать значение этой функции

<asp:button ........ onclick="return JSNavSomewhere();" />

. Ложное возвращаемое значение отменяет обратный вызов, и перенаправление теперь будет работать. Почему это работает в IE? Думаю, они думали по-другому, когда отдавали приоритет перенаправлению, а не обратному вызову.

Надеюсь, это поможет!

19
ответ дан 30 November 2019 в 02:06
поделиться

, пожалуйста, добавьте полный тег javascript script

<script type="text/javascript" language="javascript"></script>
0
ответ дан 30 November 2019 в 02:06
поделиться

Вы должны добавить 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";
}
1
ответ дан 30 November 2019 в 02:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: