2012-11-19 2 views
2

제 문제는 동적으로 <script>을 만들 수 없다는 것입니다. 누구든지이 문제를 해결할 방법이 있습니까? 나는 XML이 처음에 할 수 없었던 것을하려고 시도하고 있기 때문에 이것을 이해합니다. 비록 내 XML을 어쩌면 도움 대신 어딘가에 HTML 호출을 사용해야 사용할 변경해야합니다 궁금하다.jquery XML 내부의 HTML

$(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

답변

0

------------------------------- I

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

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

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


      $.getScript(link); 

     }); 

    }); 

}); 

는 XML 파일이 포함 된 것으로 보인다 : data$(data)

1

시도 사용 $.getScript는 대신, 예를 들어, DOM에 추가와 같은 생각하지 않습니다

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

XML 파일은 다음과 같이해야합니다 : scp를의 내용이 다음 스크립트 소스 당신이 그걸 얻기 위해 .text()를 사용해야 할 경우

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

links는, jQuery를 개체입니다.

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

이것이 효과적이었습니다. 이상하게도 몸이 더해져 ... 왜 그런지 알아? – Cam

+0

@Cam 본문에 스크립트 태그를 추가 할 수 있습니다. – Musa

0

스크립트 태그를 동적으로 만들 필요가 없습니다. 의존성을 주입하기 만하면됩니다. 각도와 같은 프레임 워크를 권하고 싶지만 getScript는 jQuery와 잘 작동합니다. 의존성 주입과 함께 getScript와 같은 것을 사용하면 문제는 코드 기반이 잘 구조화되고 모듈화되지 않게된다는 것입니다. 장기간에 걸쳐 문제를 일으킬 수있는 밀접하게 결합 된 코드로 끝날 것입니다. 느슨한 커플 링을 장려하려면 AngularJS와 같은 것을 사용하는 것이 좋습니다. 이는 매우 역동적 인 소프트웨어를 개발할 때 큰 관심사입니다.