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

Thunderbird扩展中window.fetch()使用相对路径失败的技术咨询

Thunderbird扩展中window.fetch()相对路径问题解答

核心结论

Thunderbird扩展支持使用相对路径调用window.fetch(),但相对路径的基准由执行fetch的脚本的基础URI决定,而这个基础URI和脚本的加载方式直接相关。

针对你的场景的具体说明

你的脚本是通过Services.scriptloader.loadSubScript()加载的,此时相对路径的基准是你传入loadSubScript()的目标脚本的绝对URI所在的目录。举个例子:

  • 如果调用loadSubScript()时传入的是chrome://bidimailui/content/your-fetch-script.js
  • 那么在your-fetch-script.js里调用fetch("subdir/somefile.xhtml"),实际会解析为chrome://bidimailui/content/subdir/somefile.xhtml,和你之前用的绝对路径一致。

排查Network error的可能原因

  • 路径基准判断错误:比如误将background.js的路径当作基准,而非被加载的目标脚本路径
  • 相对路径拼写错误:比如目录名、文件名的大小写或拼写不符合实际文件结构
  • 脚本运行上下文异常:如果loadSubScript()的上下文参数未正确指定窗口对象,可能导致fetch的基准URI异常

验证方法

可以在执行fetch前添加代码打印解析后的绝对URI,确认路径是否正确:

// 在你的目标脚本中
const targetPath = "subdir/somefile.xhtml";
const resolvedURI = new URL(targetPath, document.baseURI).href;
console.log("解析后的URI:", resolvedURI);
// 对比是否和你正常工作的绝对URI一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:14:51