小编典典
以下仅适用于 FireFox 和 Opera ,但我认为值得一提。
window.open('data:text/xml,' + encodeURIComponent( jqXHR.responseText ) );
应该也可以与chrome一起使用,但是它似乎与window.open通常的URL有所不同。
更新 这适用于所有浏览器!
事实是,javascript能够使用xslt转换xml。
但不是自动完成的,因此我们需要找到XML文件作为对XSLT文件的引用,并加载该文件。然后,我们可以使用javascript进行转换,并将生成的html传递到新窗口。
IE自然会处理其他事情。
$.get('xml-file-here.xml',
function(xmlData){
var xml = xmlData;
//extract the stylesheet so we can load it manually
var stylesheet;
for (var i=0;i
if ( xml.childNodes[i].nodeName =='xml-stylesheet' )
{
stylesheet = xml.childNodes[i].data;
}
}
var items = stylesheet.split('=');
var xsltFile = items[items.length-1].replace(/"/g,'');
//fetch xslt manually
$.get( xsltFile, function(xsltData){
var xslt = xsltData;
var transformed;
if (! window['XSLTProcessor'])
{
// Trasformation for IE
transformed = xml.transformNode(xslt);
}
else
{
// Transformation for non-IE
var processor = new XSLTProcessor();
processor.importStylesheet(xslt);
var xmldom = processor.transformToDocument(xml);
var serializer = new XMLSerializer();
var transformed = serializer.serializeToString(xmldom.documentElement);
}
var newwindow = window.open();
newwindow.document.open();
newwindow.document.write(transformed);
newwindow.document.close();
});
});
2020-07-26