Подтвердить что ты не робот

Window.location.href= window.location.href и JSLint

При использовании

window.location.href = window.location.href;

чтобы перезагрузить страницу (без повторной POST), не плохая практика, что мы должны сделать из жалобы JSLint "Weird assign"?

EDIT window.location.reload() не подходит, если вы не хотите повторно заполнять данные формы. В некоторых браузерах он вызывает данные Resend form? который лучше избегать, когда это не нужно.

UPDATE Я провел очень короткое тестирование и нашел:

  • Chrome 12 и Safari 5.0.5 на Mac не пересылаются с помощью .reload()
  • FF 2.0, 3.6, 4.0, 5.0 на Mac представляет пользователю "диалог формы повторной отправки" с .reload(), .reload(true) и .reload(false)
  • IE6, IE8 (стандарты), IE8 (режим IE7, стандарты) в XP; и IE9 и IE10-tech-preview в Win7 ведут себя так же, как FF на Mac
  • window.location = window.location.href работает так же, как window.location.href = window.location.href во всех этих браузерах.

Здесь тест script.

4b9b3361

Ответ 1

Попробуйте это

window.location = window.location.href;

Ответ 2

Это действительно странное задание присваивать что-то себе. Звучит скорее как предупреждение, чем жалоба.

Я бы предпочел использовать:

window.location.reload()

Изменить:, но теперь это будет отражать форму. Здесь сообщение о SO о том же: php перезагрузите страницу без публикации данных

Ответ 3

Это странное задание, JSLint прав. Проблема в том, что установка переменной имеет побочный эффект перезагрузки страницы. Я бы назвал это как window.location.href = window.location.href + '';, чтобы избежать ошибок JSLint и поставить комментарий, объясняющий, что он делает.