我有以下TypeScript代码:
let script: HTMLElement = document.createElement("script");
script.appendChild(document.createTextNode(`
{
"json": "property"
}
`));
script.id = 'appContextModel';
document.body.appendChild(script);
我收到以下错误:
未捕获的SyntaxError:意外令牌:
我认为,因为当我尝试将type
附加到正文时,脚本变量不具有值为application/json
的属性HTMLElement
,所以编译器正在检索错误。
我正在寻找一种仅使用TypeScript将type="application/json"
属性添加到脚本元素的方法。
答案 0 :(得分:1)
要将属性添加到HTMLElment,只需调用setAttribute
function of the element:
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
元素时要考虑一些安全问题,尤其是在响应用户输入时。