angular - TypeScript:向 HtmlElement 添加类型属性
问题描述
我有以下打字稿代码:
let script: HTMLElement = document.createElement("script");
script.appendChild(document.createTextNode(`
{
"json": "property"
}
`));
script.id = 'appContextModel';
document.body.appendChild(script);
我收到以下错误:
Uncaught SyntaxError: Unexpected token :
我认为因为脚本变量在我尝试附加到主体时没有具有type
值 的属性,所以编译器正在检索错误。application/json
HTMLElement
我正在寻找一种type="application/json"
仅使用 TypeScript 将属性添加到脚本元素的方法。
解决方案
要将属性添加到 HTMLElment,只需调用setAttribute
元素的函数:
let script: HTMLElement = document.createElement("script");
script.appendChild(document.createTextNode(`
{
"json": "property"
}
`));
script.id = 'appContextModel';
script.setAttribute('type', 'application/json');
document.body.appendChild(script);
或者,在这种情况下,只需设置属性:
script.type = 'application/json';
请注意,将代码直接写入script
元素时需要考虑一些安全问题,尤其是在响应用户输入时。
推荐阅读
- shell - 如何从 shell 终端历史记录中删除未知命令(zsh)
- python - 从python中的编码像素收缩边界框
- java - 无法执行 Single.create 中的任何内容 - rxjava
- django - 重置查询集后,Django Rest Framework 不过滤
- docker - 可以使用 taskset 或 systemd CPUAffinity=0 将 dockerd 和 containerd 固定到核心 0
- javascript - 我的下拉菜单不起作用(react.js)
- python - 删除像素值为零的栅格
- pandas - 每当两个同时的行值为空时,创建一个具有迭代句子计数的新列(表示找到一个新句子)
- visual-studio-code - 如何修复 Visual Studio Code 中的代码折叠
- python - wxpython工具栏菜单键盘导航