javascript - 用于三个应用程序的简单服务器端 html/JS 路由器

标签 javascript html

我不是 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/

相关文章:

javascript - 如何合并 2 个 DOM 元素数组

javascript - Rails + Ajax : destroy. js.erb 渲染成功,但 div(具有特定 id)未被删除

html - 为什么我们在主题中使用 ?ver=3.7.1?

javascript - chrome 扩展权限不起作用

performance - IFrame 的效率如何?

php - 如何使用javascript写一个非英文字符的cookie并让php正确读取

javascript - 在 vue.js 应用程序中使用外部 js 库

javascript - 使用 `background:url()` 淡化横幅

javascript - HTML + Javascript 表单提交问题

javascript - 每个元素的不同滚动速度