繁体   English   中英

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

[英]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 解决方案

问题二

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

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

请注意:

说到js,我是一个完全的新手

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM