2013-01-10 27 views

回答

5

通常的解決辦法很簡單,就是讓XML文件外,並使用它取一個XMLHttpRequest

function fetchXMLFile(url, callback) { 
    var httpRequest = new XMLHttpRequest(); 
    httpRequest.onreadystatechange = function() { 
     if (httpRequest.readyState === 4) { 
      if (httpRequest.status === 200) { 
       var xml = httpRequest.responseXML; 
       if (callback) callback(xml); 
      } 
     } 
    }; 
    httpRequest.open('GET', url); 
    httpRequest.send(); 
} 

fetchFile('myFile.xml', function(xml){ 
    // use the xml 
}); 

如果你真的想嵌入代碼的數據,你必須在正則表達式玩你最喜歡的編輯器或構建一個小工具來執行嵌入,但很少將它視爲將大數據與源代碼合併的最佳實踐。這兩個部分通常有不同的生命週期。

+0

是的,你可以通過AJAX請求它​​,但請記住,你不會嵌入它,你將需要執行第二個http請求來獲取XML。如果你不打算通過網絡發佈你的js/xml文件,這可能不適合...但是可能並非如此:) – Claudio

1

您可以嘗試以十六進制或json表示形式編寫它。

例如,「此字符串」將變爲「\ x74 \ x68 \ x69 \ x73 \ x20 \ x73 \ x74 \ x72 \ x69 \ x6e \ x67」。 有大量的在線工具可以爲你做到這一點。例如this one,會做這項工作,但不會包含「\ x」,所以javascript會將其解釋爲普通字符串。要追加\ x和有正確的十六進制格式的任何JavaScript控制檯執行的飛行這個功能:(當然有產生的十六進制數字替換引用文本)

"7468697320737472696e67".replace(/([A-F\d]{2})/gi, "\\x$1"); // \x74...\x67 

然後就這個字符串複製到你的源和它應該工作。如果你想分析XML,看看this - 另一個在線工具來將您的XML轉換爲JSON,有效的JavaScript對象;分配時直接使用它。

相關問題