使用Javascript创建并转到url

Mik*_*mes 14 javascript

我希望能够基于某些属性生成URL,然后转到javascript中的新URL.

这是我到目前为止:

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

如何导航到新URL?

Hos*_*ein 27

只需尝试:

window.location = url;
Run Code Online (Sandbox Code Playgroud)

但在尝试这样做之前,您必须确保地址"http://"+ hostAddress"/"+ triggerNumber的页面存在.例如,将有效的triggerNumbers放入数组中并检查它是否存在.所以:

//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;
}
Run Code Online (Sandbox Code Playgroud)

最后,如果目标是服务器端页面(php,asp等),地址通常如下所示:

"http://" + hostAddress "/trigger.php?id=" + triggerNumber;
Run Code Online (Sandbox Code Playgroud)

但你最好用forms来做这件事.

编辑:正如Cerbrus所建议的那样,使用javascript验证这些值是一种在导航离开页面之前告诉用户他的错误的好方法.但是为了确保将正确的数据发送到服务器,在服务器端代码中进行验证也很重要.

在该示例中,在无效触发号的情况下,用户可能最终看到404错误; 但是对于敏感信息,可能会发生更糟糕


Sha*_*ard 5

你需要的是:

document.location.href = url;
Run Code Online (Sandbox Code Playgroud)

url变量中有URL后.

获取input元素的值有:

var triggerNumber = document.getElementById("txtTrigNo").value;
Run Code Online (Sandbox Code Playgroud)