我正在编写一些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])