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

如何通过外部JavaScript加载文本文件并显示到HTML页面

解决方案:Twitch扩展中外部JS加载文本并显示到HTML

一、无需按钮,直接将外部JS获取的文本显示到HTML

你已经能在控制台打印文本,说明请求逻辑没问题,核心是要把文本插入到DOM元素里——document.getElementById()在外部JS里完全可用,只是要确保操作时机正确(DOM已加载+Twitch授权完成)。

给你具体的修改步骤:

  1. 先在HTML里添加一个专门用来展示文本的元素:
<div id="text-content"></div>
  1. 在你的viewer.js中,拿到响应文本后直接赋值给这个元素的内容(推荐用textContent,纯文本场景更安全):
twitch.onAuthorized(function(auth) {
  var xhr = new XMLHttpRequest();
  xhr.open('GET', 'https://你的CORS代理后的文本文件URL', true);
  xhr.onload = function() {
    if (this.status >= 200 && this.status < 400) {
      // 找到DOM元素并插入文本
      var textContainer = document.getElementById('text-content');
      if (textContainer) {
        textContainer.textContent = this.responseText;
      } else {
        console.error('未找到text-content元素,请检查HTML结构');
      }
    } else {
      console.error('文本文件请求失败,状态码:', this.status);
    }
  };
  xhr.onerror = function() {
    console.error('请求文本文件时发生网络错误');
  };
  xhr.send();
});

如果担心DOM未就绪,可以把逻辑包裹在DOMContentLoaded事件里,确保元素已渲染:

document.addEventListener('DOMContentLoaded', function() {
  twitch.onAuthorized(function(auth) {
    // 这里放XMLHttpRequest请求和DOM插入逻辑
  });
});

要是你用了jQuery,还能简化代码:

twitch.onAuthorized(function(auth) {
  $.get('https://你的CORS代理后的文本文件URL', function(data) {
    $('#text-content').text(data);
  }).fail(function() {
    console.error('加载文本失败');
  });
});

二、能否让object标签仅显示纯文本?

不推荐用<object>来展示纯文本,它的设计目标是嵌入PDF、Flash、外部页面这类资源,浏览器会自动调用对应引擎渲染,很难强制它以纯文本格式展示,而且在Twitch扩展环境里还可能遇到权限或兼容性问题。还是用JS获取文本后插入DOM的方式更可靠。

三、是否必须用HTTPS加载文本文件?

是的,必须使用HTTPS。因为Twitch扩展运行在HTTPS环境下,浏览器的混合内容策略会阻止从HTTP加载任何资源;再加上你提到的Twitch开发者工具不支持file://协议,所以你必须把文本文件放在支持HTTPS的服务器上(比如你用的Box加上CORS代理,只要代理地址是HTTPS的就可以)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:14:54