Создайте и перейдите к URL-адресу с помощью Javascript

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

Вот что я до сих пор:

triggerNumber = document.findcontrol(txtTrigNo).text;
hostAddress= top.location.host.toString();      
url = "http://" + hostAddress "/" + triggerNumber

Как перейти к новому URL?

Ответ 1

Просто попробуйте:

window.location = url;

Но прежде чем пытаться это сделать, вы должны убедиться, что страница по адресу "http://" + hostAddress "/" + triggerNumber существует. Например, помещая допустимые триггеры в массив и проверяя, существует ли он или нет. Итак:

//Not sure if at the end it should be .text or .value or .value()
triggerNumber = document.findcontrol(txtTrigNo).text;
var validTriggers = [123, 456, 789];
if (validTriggers.indexOf(parseInt(triggerNumber)) == -1) {
    alert("Invalid trigger number");
} else {
    hostAddress= top.location.host.toString();        
    url = "http://" + hostAddress "/" + triggerNumber;
}

Наконец, если пункт назначения является серверной страницей (php, asp и т.д.), адрес обычно выглядит следующим образом:

"http://" + hostAddress "/trigger.php?id=" + triggerNumber;

но для этого лучше использовать form.

Изменить: Как предложил Cerbrus, проверка значений с помощью javascript - хороший способ рассказать пользователю о своих ошибках перед тем, как перейти от страницы. Но чтобы убедиться, что правильные данные отправлены на сервер, важно также выполнить проверку в серверном коде.

В этом примере в случае недопустимого номера триггера пользователь может, наконец, увидеть ошибку 404; но с конфиденциальной информацией могут случиться хуже.

Ответ 2

Что вам нужно:

document.location.href = url;

После того, как у вас есть URL-адрес в переменной url.

Для получения значения входного элемента:

var triggerNumber = document.getElementById("txtTrigNo").value;

Ответ 3

Это позволит получить имя хоста и порт сервера и объединить значение элемента в конец, а затем перейти к результирующему URL-адресу.

var triggerNumber = document.getElementById("txtTrigNo").value();
var url = "http://"+window.location.host+"/"+triggerNumber;
window.location = url;