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

jsPsychHtmlButtonResponse加载本地txt文件失败问题咨询

问题核心原因

两个插件对stimulus参数的预期输入完全不同,看似一致的写法逻辑本质不匹配:

  • jsPsychImageButtonResponse原生设计支持接收图片文件路径作为stimulus值,插件内部会自动生成<img>标签发起资源请求,所以直接传本地图片路径可以正常运行
  • jsPsychHtmlButtonResponse的stimulus参数要求直接传入可渲染的HTML字符串,你传入的text_files/test.txt既不是合法HTML,也不会触发浏览器自动加载对应txt文件,自然无法正常展示。
可行处理方案

方案1:通过jsPsych预加载机制加载文本

利用jsPsych自带的预加载插件提前加载txt文件,试次运行时直接读取缓存的文本内容,拼接为HTML传入stimulus,是最符合jsPsych设计逻辑的方案:

// 实验初始化
const jsPsych = initJsPsych();
const timeline = [];

// 预加载资源,将txt文件加入加载列表
const preload_trial = {
  type: jsPsychPreload,
  files: ['text_files/test.txt']
};
timeline.push(preload_trial);

// 文本展示试次
const text_display = {
  type: jsPsychHtmlButtonResponse,
  stimulus: () => {
    const text_data = jsPsych.getPreloadedResource('text_files/test.txt');
    // 外层div加样式保留txt原有换行、空格格式,控制阅读宽度
    return `<div style="max-width: 800px; line-height: 1.7; white-space: pre-wrap; margin: 2rem auto;">${text_data}</div>`;
  },
  choices: ["Ready"]
};
timeline.push(text_display);

jsPsych.run(timeline);

方案2:试次运行时动态fetch文本文件

如果不想提前预加载,可以在试次启动阶段用原生fetch接口请求本地txt文件,拿到内容后再渲染:

const text_display = {
  type: jsPsychHtmlButtonResponse,
  stimulus: '',
  choices: ["Ready"],
  on_start: async function(trial) {
    const resp = await fetch('text_files/test.txt');
    const text_data = await resp.text();
    trial.stimulus = `<div style="max-width: 800px; line-height: 1.7; white-space: pre-wrap; margin: 2rem auto;">${text_data}</div>`;
  }
};

注意:该方案和预加载方案都要求你通过本地静态服务器运行实验(比如使用VS Code的Live Server插件、Python内置的http.server模块),直接双击打开本地HTML文件会触发浏览器跨域安全限制,导致文件加载失败。

方案3:直接内嵌文本内容

如果需要展示的文本篇幅短、不需要频繁修改,直接把文本内容拼接为HTML字符串传入stimulus即可,不需要额外加载外部文件,是最简单无依赖的方案:

const text_display = {
  type: jsPsychHtmlButtonResponse,
  stimulus: `<div style="max-width: 800px; line-height: 1.7; margin: 2rem auto;">
    这里直接填入需要展示的文本内容,支持嵌入任意HTML标签实现格式调整,比如加粗、分段、插入列表都可以正常渲染。
  </div>`,
  choices: ["Ready"]
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:27:21