TypeScript:将type属性添加到HtmlElement

时间:2018-10-01 11:32:26

标签: angular typescript

我有以下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"属性添加到脚本元素的方法。

1 个答案:

答案 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元素时要考虑一些安全问题,尤其是在响应用户输入时。