我希望能够基于某些属性生成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错误; 但是对于敏感信息,可能会发生更糟糕
你需要的是:
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)