Изменить URL и перенаправить с помощью jQuery - PullRequest
125 голосов
/ 11 мая 2009

У меня есть такой код,

<form id="abc">
  <input type="text" id="txt" />
</form>

и теперь я хочу перенаправить вот так

var temp = $("#txt").val();
url = "http://example.com/" + temp;
window.location.replace(url);
// or window.location(url);

Есть ли в jQuery решение этой проблемы? Это все еще позволяет мне иметь url = http://example.com.

Ответы [ 6 ]

327 голосов
/ 11 мая 2009

Как уже упоминалось в других ответах, вам не нужен jQuery для этого; Вы можете просто использовать стандартные свойства.

Однако, похоже, вы не знаете разницу между window.location.replace(url) и window.location = url.

  1. window.location.replace(url) заменяет текущее местоположение в адресной строке новым. Страница, которая вызывала функцию, не будет включена в историю браузера. Поэтому в новом месте, нажав кнопку «Назад» в вашем браузере, вы вернетесь на страницу, которую просматривали до посещения документа, содержащего перенаправляющий JavaScript.
  2. window.location = url перенаправляет на новое место. На этой новой странице кнопка возврата в вашем браузере будет указывать на исходную страницу, содержащую перенаправляющий JavaScript.

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

P.S .: Вы, вероятно, забыли две косые черты после http: в строке 2 вашего JavaScript:

url = "http://abc.com/" + temp;
39 голосов
/ 11 мая 2009

скажу вам правду, я все еще не понимаю, что вам нужно, но

window.location(url);

должно быть

window.location = url;

поиск по ссылке window.location сообщит вам об этом.

17 голосов
/ 11 мая 2009

jQuery не имеет опции для этого, и при этом не должно быть ни одного. Это совершенно правильный javascript, и у jQuery нет причин предоставлять для этого функции-оболочки.

jQuery это просто библиотека поверх javascript, даже если вы используете jQuery, вы все равно можете использовать обычный javascript.

Кстати, window.location - это не функция, а свойство, которое вы должны установить следующим образом:

window.location = url;
8 голосов
/ 12 января 2015
var temp="/yourapp/";
$(location).attr('href','http://abcd.com'+temp);

Попробуйте это ... используется в качестве альтернативы

3 голосов
/ 23 августа 2012

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

$("#abc").attr("action", "/yourapp/" + temp).submit();

Что это значит:

Найдите форму с id "abc", измените ее attribute на "action" и отправьте ...

Это работает для меня ... !!!

0 голосов
/ 14 апреля 2019

Вы можете сделать это проще без jquery

location = "https://example.com/" + txt.value

function send() {
  location = "https://example.com/" + txt.value;
}
<form id="abc">
  <input type="text" id="txt" />
</form>

<button onclick="send()">Send</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...