Мне нужно перенаправить пользователя с помощью JavaScript. Какой предпочтительный метод?window.open target _self v window.location.href?
window.open("webpage.htm", "_self");
или
window.location.href = "webpage.htm";
Мне нужно перенаправить пользователя с помощью JavaScript. Какой предпочтительный метод?window.open target _self v window.location.href?
window.open("webpage.htm", "_self");
или
window.location.href = "webpage.htm";
Определенно второй способ является предпочтительным, потому что вы не имеете накладные расходы на другой вызов функции:
window.location.href = "webpage.htm";
Якоб предоставил лучшее объяснение, чем Or W Фредерик Хамиди также добавил к ответу, и я хотел бы дать вам ответ, но, похоже, я должен выбрать его. Поскольку Иаков ответил первым, ответ идет вам. – Junto
Следует отметить, что при использовании этого метода использование ссылки типа '../../ folder/page.aspx? Source = abcd' не работает. Мне нужно было использовать другой метод, чтобы моя ссылка работала, и даже тогда не могла использовать «_self» с ней. – Christine268
Накладные расходы на вызов функции? Функциональные вызовы имеют определенную стоимость, но я не уверен, имеет ли это какое-либо значение, я на этот раз ожидаю, что вызовы функций в настоящее время так же эффективны, как доступ к ресурсам для всех практических целей. На JVM это происходит, когда производительность прыгает, что V8 сделал, я ожидаю то же самое здесь. Что-то не так с моим анализом здесь? – faizan
window.location.href = "webpage.htm";
Как уже говорилось, второй подход обычно предпочтительнее.
Два фрагмента кода не совсем эквивалентны: первый на самом деле устанавливает window.opener
самому объекту окна, тогда как второй оставит его как есть, по крайней мере, под Firefox.
Вы можете опустить window
и просто использовать location.href
. Например:
location.href = 'http://google.im/';
Надеюсь, кто-то еще сохранит это, прочитав это.
Мы столкнулись с проблемой с WebKit браузеров на основе делают:
window.open("webpage.htm", "_self");
Браузер будет Блокировку и умереть, если у нас было слишком много узлов DOM. Когда мы перевели наш код на следующий принятый ответ:
location.href = "webpage.html";
все было хорошо. Нам потребовалось некоторое время, чтобы выяснить, что вызвало проблему, поскольку не было очевидно, почему наша страница периодически не загружается.
Пожалуйста, используйте этот
window.open("url","_self");
- Первый параметр "URL" полный путь к какой странице вы хотите открыть.
- Второй параметр «_self», он используется для открытой страницы на той же вкладке. Вы хотите открыть страницу на другой вкладке, пожалуйста, используйте «_blank».
Этот ответ прямо противоположен предлагаемому ответу и может привести к сбою браузеров. Смотрите мой ответ в этой теме. Кроме того, это не говорит, почему вы решили использовать этот метод, он просто говорит, чтобы использовать его. –
- не первый - открыть новое окно? На самом деле я не уверен. –
@Gunner, Nope, он откроет его в том же окне, следовательно, '' _self'' там ... –
, если вы замените _self на _blank, он откроется в новом окне – DOK