如何在用户点击按钮时创建随机页面?

How to create random page when user clicks on button?

你好

所以我想写一个聊天页面(因为我很无聊)并且想知道一些事情。

看,我的聊天室有两个功能。您可以与所有人聊天,也可以创建自己的聊天室。

和大家的聊天还好,但是我的问题是如何创建一个随机页面。

我的 Js 是这样的:

function makeid(length) {
  var result = "";
  var characters =
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  var charactersLength = characters.length;
  for (var i = 0; i < length; i++) {
    result += characters.charAt(Math.floor(Math.random() * charactersLength));
  }
  return result;
}

function chatroom() {
  var opened = window.open(makeid(5) + "/index.html");
  opened.document.write(
    '<title>Chat Room</title>    <link rel="stylesheet" href="/style.css" />    <script src="/script.js" defer></script>    <link      rel="stylesheet"      "type="text/css"      href="https://www.htmlcommentbox.com/static/skins/bootstrap/twitter-bootstrap.css?v=0"    />    <script type="text/javascript" id="hcb">      if (!window.hcb_user) {        hcb_user = {};      }      (function() {        var s = document.createElement("script"),          l = hcb_user.PAGE || ("" + window.location).replace(/\'/g, "%27"),          h = "https://www.htmlcommentbox.com";        s.setAttribute("type", "text/javascript");        s.setAttribute(          "src",          h +            "/jread?page=" +            encodeURIComponent(l).replace("+", "%2B") +            "&opts=16862&num=10&ts=1604950047682"        );        if (typeof s != "undefined")          document.getElementsByTagName("head")[0].appendChild(s);      })(); //-->    </script>    <!-- end www.htmlcommentbox.com -->  </head>  <body>    <h1>      CHATZ    </h1>    <!-- begin wwww.htmlcommentbox.com -->    <div id="HCB_comment_box">      <a href="http://www.htmlcommentbox.com">Comment Box</a> is loading      comments...    </div>  </body></html>'
  );

当我运行功能聊天室时,会打开about:blank,而不是随机url(如https://inter.blag/2sd39),其中2sd39是一个js生成的随机字符串。

有没有办法让它随机打开一个id?

哦,请注意,我正在寻找纯 js 解决方案

问题 2

当我 运行 第二次编写该代码时,它不会创建 new 聊天室。 about:blank页面还有第一次的旧评论。

你建议我怎么做才能做到这一点?

请注意:

对于js我完全是新手

问题是因为您正在尝试写入生成的 window 的文档。尝试不使用 opened.document.write,它会起作用。这是一种安全措施。想象一下这样一种情况,您可以像那样打开银行页面(为其他人)并通过动态覆盖内容来弄乱其内容。

我假设您不想或不知道如何创建可以处理 URL 并将它们动态映射(路由)到现有资产或动态生成内容的复杂 Web 应用程序。您可以做的是准备另一份文件,例如。 chat.html 并通过查询将 id 传递给它,例如:

https://inter.blag/chat.html?chatID=2sd39

然后在chat.html中嵌入的JS代码中使用window.location读取ID。

我不确定你到底想达到什么目的,我也怀疑 window.open 是否是将用户重定向到其他页面的最佳方式。