2011-03-13 24 views
0

我想通過DOM創建xml文件,這就是我寫的。 我在IE中運行它,它帶來了一個權限被拒絕的錯誤,並ActiveXObject的是不能在Firefox在該行定義:在IE中,Javascript權限被拒絕錯誤,ActiveXObject在創建xml文件時未在Firefox中定義

fso = new ActiveXObject("Scripting.FileSystemObject"); 

我怎樣才能解決這個問題?

var xhttp; 
try { 
    xhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
} catch (e) { 
    try { 
     xhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (f) { 
    xhttp = null; 
    } 
} 
if (!xhttp && typeof XMLHttpRequest != "undefined") { 
    xhttp = new XMLHttpRequest(); 
} 

xhttp.open("GET", "nn.xml", false); 
xhttp.send(); 
xmlDoc = xhttp.responseXML; 

newel = xmlDoc.createElement("student"); 
newtext = xmlDoc.createElement("stName"); 
newel.appendChild(newtext); 
newtext2 = xmlDoc.createElement("examName"); 
newel.appendChild(newtext2); 
newtext3 = xmlDoc.createElement("grade"); 
newel.appendChild(newtext3); 
x = xmlDoc.documentElement; 
x.appendChild(newel); 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
ts = fso.OpenTextFile("D:\\test\\test\\nn.xml", 2, true, -1); //2=Open a file for writing. 
ts.Write(xmlDoc.xml); 
ts.Close(); 
+1

使用框架的Ajax函數(如jQuery)會更容易。但是,在Firefox – 2011-03-13 20:58:08

+0

中,你無法完成腳本的第二部分(寫入本地文件),但實際上我必須有一個本地文件來對其執行一些操作。 – noor 2011-03-13 21:04:01

+0

@noor,它仍然不能在Firefox中工作。 – 2011-03-13 21:06:28

回答

2

ActiveX僅適用於Microsoft瀏覽器,如果您希望跨瀏覽器兼容性,則不應使用該功能。

至於寫入文件,這是不允許的一個很好的理由。考慮一下你的硬盤驅動器在瀏覽隨機互聯網站點時會被擦除多少次,如果允許的話。

相關問題