首页 > 解决方案 > 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/jsonHTMLElement

我正在寻找一种type="application/json"仅使用 TypeScript 将属性添加到脚本元素的方法。

标签: angulartypescript

解决方案


要将属性添加到 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元素时需要考虑一些安全问题,尤其是在响应用户输入时。


推荐阅读