【发布时间】:2018-02-13 17:12:19
【问题描述】:
我正在尝试在我的 react 应用程序中实现 dynatrace,如果我只是在我的 index.html 标头中手动添加所需的脚本标签,这会很好。
但是我想使用 dynatraces api,它返回整个脚本标签元素(所以我可以用于不同的环境)。
调用api后如何将脚本标签添加到我的index.html?从代码创建脚本元素不起作用,因为 api 调用的响应是脚本标签本身(以字符串形式返回)。
我尝试创建一个 div 元素并将脚本添加为 innerHtml,然后将其附加到文档中。但是脚本不会在 innerHtml 文本中执行。
const wrapperDiv = document.createElement("div");
wrapperDiv.innerHTML = "<script>alert('simple test')</script>";
document.head.appendChild(wrapperDiv.firstElementChild);
这个可以吗?
我找到了一个迂回的方法:
const wrapperDiv = document.createElement("div");
const scriptElement = document.createElement("script");
wrapperDiv.innerHTML = "<script src=... type=...></script>";
for(let i = 0; i < wrapperDiv.firstElementChild.attributes.length; i++){
const attr = wrapperDiv.firstElementChild.attributes[i];
scriptElement.setAttribute(attr.name, attr.value);
}
document.head.appendChild(scriptElement);
在这个脚本示例中,我只使用了 src,但这也可以使用值来完成。如果有更好的方法请告诉我
【问题讨论】:
标签: javascript html reactjs dynatrace