0

我正在使用 JQuery 创建一个 XML 字符串。我想打开一个新窗口向用户显示此字符串,以便他将其保存为 XML 文件。

我没有服务器端,我希望这个 Javascript 脚本与 Firefox 和 Internet Explorer 浏览器兼容。

我发现了很多东西,但没有一个真的很好用。

uriContent="data:application/xml," + encodeURIComponent(xmlContent);
var newWindow=window.open(uriContent,'_blank','toolbar=0,location=0,directories=0,status=0, scrollbars=1, resizable=1, copyhistory=1, menuBar=1, width=640,height=480, left=50, top=50');

或者对于 IE:

var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlContent);
var newWindow = window.open('','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=1, menuBar=1, width=640, height=480, left=50, top=50', true);
 newWindow.document.writeln(xmlDoc.documentElement.xml);
 newWindow.document.close();

第一个解决方案几乎适用于 Firefox,但不适用于 IE:

一个数据:FF中的url

第二个源代码打开一个带有 XML 内容的窗口,但 IE 无法将其识别为 XML……所以用户必须自己显示源代码。这不是很方便。

空的 IE 窗口

有没有人有办法解决吗?

谢谢!

4

1 回答 1

2

如果您将 XML 视为内容会怎样?

var newWindow = window.open('','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=1, menuBar=1, width=640, height=480, left=50, top=50', true);
var preEl = newWindow.document.createElement("pre");
var codeEl = newWindow.document.createElement("code");
codeEl.appendChild(newWindow.document.createTextNode(xmlContent));
preEl.appendChild(codeEl);
newWindow.document.body.appendChild(preEl);

...然后您可以使用Google Code PrettifySyntaxHighlighter 之类的东西来添加您需要的任何突出显示。

于 2012-06-13T14:37:44.440 回答