我正在尝试在我的反应应用程序中实现 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,但这也可以使用该值来完成。如果有任何更好的方法可以做到这一点,请告诉我