是否有更简单的方法将完整的“脚本”标记输出为文本?

时间:2014-10-30 16:30:10

标签: javascript html ajax xml html-form

我正在编写一些AJAX,它引入了一个可能有脚本和/或css的网页,我试图将其分成几个支持字段,这些字段运行所有这些。< / p>

我相信在这种情况下相关的代码是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 += "\r\n" + String(ResponseScripts[i]);
        }
        return;
    }
}

这里的想法是将任何脚本标签(最好是全文的直接副本)添加到'AgendaJS'textarea。

我现在看到的方式是,我几乎必须检查脚本标签的各个元素并从'scratch'重新生成整个标签 - 所以我希望我能找到一种方式来将此元素转储到不会产生此字段的字段中:

[object HTMLScriptElement]

我瞥了一眼这里和其他地方的一些帖子,声称某种方法有效 - 但我还没有确认其中任何一种。

要清楚 - 我有效地将JS字段的结果添加为完整标记和结束标记,如下所示:

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

1 个答案:

答案 0 :(得分:1)

使用ResponseScripts[i].outerHTML代替String(ResponseScripts[i])