18910140161

使用JavaScript代码添加外部HTML而不使用iframe-堆栈溢出

顺晟科技

2022-10-18 14:00:37

117

我正在尝试从一个网站加载一些HTML和JavaScript,而不使用iframe.我可以呈现HTML、CSS,并且似乎正在加载JavaScript文件,但我无法从加载的内容中调用函数。

我正在尝试使用FETCH加载:

window.onload = function () {
    fetch(myURL)
        .then(function (response) {
            return response.text();
        })
        .then(function (body) {
            var dv = document.createElement('div');
            dv.innerHTML = body;
            document.body.appendChild(dv);
            //trying to call function here after appending the html content to my page
        });
}();

有没有可能,或者浏览器出于安全原因阻止了它?


顺晟科技:

您必须显式添加脚本元素。所以可以肯定的是:

 let text = "<h1>Test</h1><script>const callMe = () => { alert('called'); }" + "&lt;/script>";
    const scriptStart = text.indexOf('<script>');
    const scriptEnd = text.indexOf('&lt;/script>');
    const script = text.substring(scriptStart + "<script>".length, scriptEnd);
    text = text.substring(0, scriptStart) + text.substring(scriptEnd + "&lt;/script>".length);
    element.innerHTML = text;
    const scriptElement = document.createElement("script");
    scriptElement.innerHTML = script;
    document.head.appendChild(scriptElement);
    callMe();
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航