2012-11-19 36 views
2

我的問題是,我不能動態創建<script>。有沒有人有辦法解決這個問題?我認爲這是因爲我試圖做一些XML最初無法做到的事情。我想知道如果我的XML需要改變,也許我需要使用html調用,而不是感謝幫助。HTML裏面的jQuery的XML

$(document).ready(function(){ 
    $.get('js.xml', function(data){ 

     $(data).find('info').each(function(){ 

      var $info = $(this); 
      var links = $info.find("scp"); 


      var html = '<script type="text/javascript" src="' + links + '"></script>'; 

      $('body').append($(html)); 

     }); 

    }); 

}); 

--------------------- !! ADDED的jsfiddle -------------------------------

Jsfiddle

回答

1

嘗試使用$.getScript它,而不是追加到DOM,例如:

$(document).ready(function(){ 
    $.get('js.xml', function(data){ 

     $(data).find('info').each(function(){ 

      var $info = $(this); 
      var links = $info.find("scp"); 


      $.getScript(link); 

     }); 

    }); 

}); 

似乎XML文件包含:

<location> 
<info> 
<scp> 
<script type="text/javascript" src="https://www.printersmall.com/jqueryui/1.8.17/jquery.cookie.js"></script> 
</scp> 
</info> 
</location> 

XML文件應該是這樣的:

<location> 
<info> 
<scp> 
    www.printersmall.com/jqueryui/1.8.17/jquery.cookie.js 
</scp> 
</info> 
</location> 
0

links是一個jQuery對象,如果SCP的內容是腳本源,那麼你需要使用.text()得到它。

var links = $info.find("scp").text(); 
+0

這工作....奇怪的身體作爲追加...你知道這是爲什麼嗎? – Cam

+0

@Cam你可以在主體中有腳本標籤。 – Musa

0

您不需要動態創建腳本標記。你只需要注入你的依賴。我推薦一個像angular這樣的框架,但getScript和jQuery一樣。使用諸如getScript之類的依賴注入的問題在於,你的代碼庫不會最終結構合理且模塊化。你將最終得到緊密耦合的代碼,這將長期產生問題。我建議使用類似AngularJS的東西來鼓勵鬆耦合。當您構建非常動態的軟件時,這是一個非常值得關注的問題。