You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在页面加载时用JavaScript随机加载HTML文件到页面中?

解决随机加载HTML文件内容到侧边栏的问题

你的代码现在只是把HTML文件的URL字符串直接输出到页面里,自然看不到实际内容。要加载并显示文件里的HTML,得先发起请求获取文件内容,再把内容赋值给元素的innerHTML。以下是修改后的实现:

方案一:使用现代的Fetch API

替换原来的displayRandomMessage函数:

function displayRandomMessage() {
  var contentArea = [
      '/includes/side2.htm',
      '/includes/side3.htm',
      '/includes/side4.htm'
  ];

  var randomIndex = Math.floor(Math.random() * contentArea.length);
  var targetUrl = contentArea[randomIndex];

  // 发起请求获取HTML文件内容
  fetch(targetUrl)
    .then(response => {
      if (!response.ok) {
        throw new Error('加载文件失败');
      }
      return response.text();
    })
    .then(htmlContent => {
      var messageElement = document.getElementById("contentArea");
      messageElement.innerHTML = htmlContent;
    })
    .catch(error => {
      console.error('出错了:', error);
      // 加载失败时可以显示备用内容
      var messageElement = document.getElementById("contentArea");
      messageElement.innerHTML = '<p>内容加载失败</p>';
    });
}

页面末尾的脚本保持不变:

<script>
    window.onload = displayRandomMessage;
</script>

注意事项

  • 确保你的HTML文件(side2.htm、side3.htm等)和主页面在同一域名下,否则会触发浏览器的同源策略限制,导致请求失败。
  • 如果要兼容非常旧的浏览器(比如IE),可以改用XMLHttpRequest替代Fetch API,示例代码如下:
function displayRandomMessage() {
  var contentArea = [
      '/includes/side2.htm',
      '/includes/side3.htm',
      '/includes/side4.htm'
  ];

  var randomIndex = Math.floor(Math.random() * contentArea.length);
  var targetUrl = contentArea[randomIndex];
  var xhr = new XMLHttpRequest();
  
  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {
      if (xhr.status === 200) {
        var messageElement = document.getElementById("contentArea");
        messageElement.innerHTML = xhr.responseText;
      } else {
        console.error('加载失败,状态码:', xhr.status);
        var messageElement = document.getElementById("contentArea");
        messageElement.innerHTML = '<p>内容加载失败</p>';
      }
    }
  };
  
  xhr.open('GET', targetUrl, true);
  xhr.send();
}

内容的提问来源于stack exchange,提问作者Mhutch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 02:51:12