2012-05-12 5 views
0
<script type="text/javascript"> 
     if (SOMECONDITION) { 
      $("#scriptD").attr("src", "../../Scripts/A.js"); 
     } else { 
      $("#scriptD").attr("src", "../../Scripts/B.js"); 
     } 

</script> 

<script id="scriptD" src="" type="text/javascript"></script> 

.js 파일을 조건별로 동적으로 삽입하려고합니다. 그러나 이것은 효과가 없습니다. 아무도 저에게 문제가 뭔지 말해 줄 수 있습니까?Jquery 올바른 방법입니까?

+0

경로 문제 일 수 있습니까? – Simone

+0

오류 콘솔에 표시되는 점은 무엇입니까? –

+0

스크립트가 실행되고 있지 않습니다. – gaurav

답변

3

한 가지 방법은 당신이 <script> 요소

<script id="scriptD" src="" type="text/javascript"></script> 
<script type="text/javascript"> 

    if (SOMECONDITION) { 
     $("#scriptD").attr("src", "../../Scripts/A.js"); 
    } else { 
     $("#scriptD").attr("src", "../../Scripts/B.js"); 
    } 

</script> 

이를 한 후 스크립트를 배치하면, $.getScript()

if (SOMECONDITION) { 
    $.getScript("a.js"); 
} else { 
    $.getScritp("b.js"); 
} 

을 사용하고 게다가, 당신은 방법을 작동하려고하는 일을 할 수 있습니다 스크립트가 요소 앞에 호출 될 때 DOM에서 scriptD을 찾을 수 없기 때문입니다.

+1

짧은;)'SOMECONDITION? $ .getScript ("a.js") : $ .getScript ("b.js"); ' –

+0

@yaponyal, 절대적으로 더 짧을 것이다'$ .getScript ((SOMECONDITION)?'a.js ':'b .js '); (그가 말한 것) 그는 – Starx

4

난 당신이 getScript (URL)를 찾고 있습니다 생각 : 당신은 구문 분석과 <script id='scriptD'>는 DOM에 존재하기 전에 스크립트를 실행하는 것처럼

http://api.jquery.com/jQuery.getScript/

1

것 같습니다. $(document).ready()에서 함수를 실행하거나 스크립트 태그가 실행되기 전에 다시 배열하십시오.

<script type="text/javascript"> 
     $(document).ready(function() { 
     if (SOMECONDITION) { 
      $("#scriptD").attr("src", "../../Scripts/A.js"); 
     } else { 
      $("#scriptD").attr("src", "../../Scripts/B.js"); 
     } 
     }); 

</script> 
<script id="scriptD" src="" type="text/javascript"></script> 
0

이 시도 할 수 있습니다 :

<script type="text/javascript" id="scriptD" src=""></script> 

<script type="text/javascript"> 
    (function() { 
     if (SOMECONDITION) { 
      $("#scriptD").attr("src", "../../Scripts/A.js"); 
     } else { 
      $("#scriptD").attr("src", "../../Scripts/B.js"); 
     } 
    })(); 
</script> 

당신이 그 속성을 변경하기 전에 존재해야 SRC를 변경하려면 스크립트를. 빈 src 스크립트가없는이 방법을 시도해보십시오.

<script type="text/javascript"> 
    (function() { 
     var script = document.createElement("script"); 
     script.setAttribute("type", "text/javascript"); 
     script.setAttribute("src", "../../Scripts/" + (SOMECONDITION ? "A" : "B") + ".js"); 

     document.getElementByTagName(head)[0].appendChild(script); 
    })(); 
</script> 
관련 문제