javascript - 在 Chrome 扩展程序中呈现树枝模板
问题描述
我正在尝试在 chrome 扩展中渲染一个 twig (with twigjs) 模板。我目前正在使用 browserify 构建脚本编译以下打字稿。
import * as twig from "twig"
const MAIN_TEMPLATE: string = chrome.runtime.getURL("twig/main.html.twig");
document.addEventListener("DOMContentLoaded", () => {
twig.renderFile(MAIN_TEMPLATE, (err: Error, html: string) => {
document.querySelector("body").innerHTML = html;
});
});
我已确保将文件包含在我manifest.json
的 .
...
"web_accessible_resources": [
"twig/*.html.twig"
]
...
但是,在运行此程序时,我得到以下堆栈跟踪。我不确定该怎么做,因为chrome.runtime.getURL
如果我将返回的 URL 打入地址栏,它会解析。
Uncaught TypeError: t.stat is not a function
at Object.<anonymous> (twig.js:1)
at Object.e.Templates.loadRemote (twig.js:1)
at Object.e.exports.twig (twig.js:1)
at Object.e.exports.renderFile (twig.js:1)
at HTMLDocument.<anonymous> (browser-action.ts:7)
解决方案
挖掘一些twigjs
源代码,看起来使用renderFile
助手是我的错误。这更正确。
const MAIN_TEMPLATE_URI: string = chrome.runtime.getURL("twig/main.html.twig");
const MAIN_TEMPLATE: twig.Template = twig.twig({href: MAIN_TEMPLATE_URI, async: false};
document.querySelector("body").innerHTML = MAIN_TEMPLATE.render({tabs, tabListTemplate: TAB_LIST_TEMPLATE_URI});
我使用 async false 因为它只会从本地连接获取,所以同步加载模板确实不应该有任何延迟。
推荐阅读
- facebook - 无法弄清楚如何在 Facebook 新闻源中为 Chome 扩展选择项目
- python - Tkinter OptionMenu 遇到问题
- c# - 使用自定义关键字和控制流扩展 C# 语法
- javascript - 如何使用材料将 ng-messages 添加到 AngularJS 中动态创建的输入中
- spring - spring boot:将应用程序属性分成多个属性文件
- github - 在 github 上进行高级搜索,不包括特定存储库
- json - 使用 JQ 解析 JSON 嵌套对象,使用 select 匹配嵌套对象中的键值,同时显示现有结构
- flutter - TextFormField 标签文本大小在焦点上更改
- python - 具有时间戳差异的 Groupby 'ID' 并在 Python 中维护其他列
- c# - WPF,C#中资源字典的奇怪覆盖操作