我不是 JavaScript 程序员,但需要在我网站的主 index.htm 文件中进行非常简单的路由。情况:假设我们有三个主要的 ISAPI 应用程序:app1.dll、app2.dll 和 app3.dll,它们都由同一个内部服务器托管。
这些还代表三个外部域,例如 app1.com、app2.com 和 app3.com,所有这些域都访问同一服务器和 index.htm 页面。我想要在 index.htm 页面中执行的操作是简单地重定向到适当的服务器应用程序,而无需进一步的用户操作(即使用相同的浏览器窗口)。
现在,经过一番研究,我了解到可以使用以下脚本获取并显示主机名:
<script>
document.getElementById("hostname").innerHTML =
"Hostname is: " + window.location.hostname + "<br/>";
</script>
现在我想做的是以下内容(请原谅任何不正确的语法):
<script>
if { hostname = "www.app1.com" {
var url = "http://www.app1.com/isapi/app1/app1.dll/";
} else {
if { hostname = "www.app2.com" {
var url = "http://www.app1.com/isapi/app1/app2.dll/";
} else {
if { hostname = "www.app3.com" {
var url = "http://www.app3.com/isapi/app1/app3.dll/";
} else {
}
}
}
"GO TO URL";
</script>
如何在没有按钮等和进一步用户操作的情况下对“转到 URL”进行编码?我相信我需要一个 GET 命令,如下所示:
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.send();
return;
但我可以让它执行。
欢迎任何建议。
最佳答案
您只想将用户重定向到某个网址吗?
您可以通过位置 API 来做到这一点。
window.location = "http://stackoverflow.com"
这会将用户重定向到 stackoverflow.com
所以在你的情况下只需这样做:window.location = url
由于 window 对象是全局范围,因此您可以执行 location = url
编辑:
我还建议您使用 switch 语句而不是嵌套的 if 语句。它将更具可读性:
var url = "";
switch(hostname){
case "www.app1.com":
url = "url..."; break;
case "otherdomain":
url = "url..."; break;
default:
url = "url..."; //if none of the above ones
}
window.location = url;
关于javascript - 用于三个应用程序的简单服务器端 html/JS 路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36532717/