簡體   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