2013-07-11 48 views
2

我已經做了以下顯示我的XML到一個新的瀏覽器窗口:的javascript:使用數據URI來顯示XML流

window.open('data:text/xml,' + encodeURIComponent('<?xml version="1.0" encoding="utf-8"?><Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02"><parent>test</parent></Document>')); 

工作在所有的瀏覽器偉大的...但是IE明顯。我正在使用IE10。我該怎麼做才能使這個工作?現在,xml被URL編碼並且不會顯示在新窗口中。

+0

對於IE瀏覽器,我認爲你需要反彈回來到服務器。有'window.open('javascript:document.write(「'+」hello「+'」)');'但是我認爲你將會遇到問題讓它能夠與xml一起工作 –

+0

docuemnt.write意味着我格式化xml自己。我想讓瀏覽器做到這一點。聽起來真的很痛...... – Sam

回答

3

從MSDN庫中的data Protocol文章:

出於安全原因,數據URI僅限於下載 資源。數據URI 不能用於導航,編寫腳本或填充框架或iframe元素

+1

我想這就是答案....我討厭IE瀏覽器。不管怎麼說,還是要謝謝你。 – Sam

0

出於安全原因,數據URI僅限於下載的資源。數據URI不能用於導航,腳本編寫,或填充框架或iframe元素...

他們可以與此Javascript招..

var uri = 'data:text/xml,' + encodeURIComponent({your xml}); 

    var link = document.createElement("a"); 
    link.href = uri; 


    link.style = "visibility:hidden"; 
    link.download = fileName + ".xml"; 

    document.body.appendChild(link); 
    link.click(); 
    document.body.removeChild(link);