有没有更简单的方法将完整的"脚本"标签输出为文本?



我正在编写一些AJAX,它可以拉入一个网页,该网页有可能包含脚本和/或css,我正试图在运行所有这些的表单中将这些脚本和css分离为几个支持字段。

我相信在这种情况下相关的代码是AJAX终结器。

xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        var JavascriptContent = document.getElementsByName('AgendaJS')[0];
        var CSSContent = document.getElementsByName('AgendaCSS')[0];
        var Parser = new DOMParser();
        var xmlData = Parser.parseFromString(xmlhttp.responseText, "text/html");
        var ResponseBody = xmlData.getElementsByTagName('body')[0];
        tinymce.activeEditor.setContent(ResponseBody.innerHTML);
        var ResponseScripts = xmlData.getElementsByTagName('script');
        var i = 0;
        for( i = i; i <= ResponseScripts.length; i++ )
        {
            JavascriptContent.innerText += "rn" + String(ResponseScripts[i]);
        }
        return;
    }
}

这里的想法是将任何脚本标记(最好是全文的直接副本)添加到"AgentaJS"文本区域。

我现在的看法是,我几乎注定要检查脚本标记的各个元素,并从头开始重新生成整个标记——所以我希望我能找到一种方式,将这个元素转储到不会产生这种结果的字段中:

[object HTMLScriptElement]

我在这里和其他地方浏览了一些帖子,声称某个特定的方法有效,但我还没有证实其中的任何一个。

需要明确的是,我实际上希望JS字段的结果添加为完整标记和结束标记,如下所示:

<script type="text/javascript" src="/tinymce/js/tinymce/tinymce.min.js"></script>

使用ResponseScripts[i].outerHTML而不是String(ResponseScripts[i])

最新更新