2012-07-05 3 views
3

div에 변수를 삽입하기 위해 Jquery를 사용했습니다. 제 코드를 확인하십시오.div에 코드 스 니펫을 삽입하십시오.

var msg = '<script src="https://gist.github.com/3010234.js?file=new.html.erb"></script>' 
$('.result').html(msg); 

msg 변수에는 코드 스 니펫을 렌더링하는 스크립트가 포함되어 있습니다. msg는 동적 변수입니다.

위의 코드는 div에 코드 스 니펫을 삽입 할 수 없습니다.

아이디어가 있으십니까?

이 스크립트는 다음과 같은 코드 스 니펫을 생성합니다.

enter image description here

+0

코드를 어떻게 부르나요? 문서가 준비 되었습니까? – BryanH

+2

왜'script'를'div' 안에 추가합니까 ??? – Kshitij

+0

목적은 무엇입니까? 스크립트를 실행하거나 표시 만 하시겠습니까? –

답변

3

script를 추가하려면이 같은 head에 추가 할 것입니다;

var s = document.createElement('script'); 
s.src = 'https://gist.github.com/3010234.js?file=new.html.erb'; 
s.type = 'text/javascript'; 
document.getElementsByTagName('head')[0].appendChild(s); 
+0

이 경우는 아닙니다. 디스플레이 코드를 출력하는 헤드에 스크립트를 추가하면 작동하지 않습니다. – BryanH

+0

@ 브라이언 : 알다시피, 일반적인 접근 방법을 게시했습니다. 하지만이 경우 document.getElementById ('id')'는 그 트릭을 수행합니다 :) – Blaster

+0

'var script = document.createElement ("script"); script.src = "https://gist.github.com/3010234.js?file=new.html.erb"; script.type = "text/javascript"; document.getElementById ('aaa'). appendChild (스크립트);'. 이 코드는 스크립트를 삽입했습니다. 코드 스 니펫을 렌더링하지 않습니다. –

1
function loadScript() { 

    var script = document.createElement("script"); 
    script.src = "https://gist.github.com/3010234.js?file=new.html.erb"; 
    script.type = "text/javascript"; 
    document.getElementsById("result").appendChild(script); 

} 
+1

HTML에서 태그 이름으로'result'를 가진 요소가 없습니다 :) – Blaster

+0

@Blaster yeh 당신이 맞습니다, 업데이트했습니다. – Talha

+1

'getElementsByID'를'getElementById'로 변경하십시오 :) – Blaster

1

당신은 동적으로 소스 코드를 사용하여 페이지에 github의의 요점을로드 할 수 없습니다. 스크립트 태그를 HTML에 추가 할 수 있지만 JavaScript를 통해 동적으로 수행하려는 경우 포함 코드는 괜찮습니다. document.write()에 의존하기 때문에 작동하지 않습니다.

$.get("https://api.github.com/gists/3010234", function(response) { 
    $(".result").text(response.data.files["new.html.erb"].content); 
}, "jsonp"); 

근무 데모 : 원격 JS가 버그처럼http://jsfiddle.net/naTqe/

+0

[다른 질문에 표시됨] (http://stackoverflow.com/questions/236073/why-split-the-script-tag-when-writing-it-with-document-write/236106#236106). – BryanH

+0

'$ .getScript ("https://gist.github.com/3010234.js?file=new.html.erb"); '이 (가) 작동 중입니다.그러나 스크립트로 생성 된 코드 스 니펫을 div에 렌더링 할 수는 없습니다. –

+0

@Shamithc -로드하려는 스크립트는 document.write()를 사용합니다. 문서로드가 끝나면 사용하면 안됩니다. – gilly3

0

것 같습니다

대신, github gists api를 사용합니다. JS Lint을 통해 실행하여 몇 가지 오류가 발생했습니다.

어쨌든 여기에 제 작업 예제가 있습니다. 자바 스크립트 콘솔을 열어두면 원격 JS를 구문 분석 할 때 오류가 표시됩니다.

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <script type="text/javascript" src= 
    "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <title>Jquery test</title> 
</head> 

<body> 
    <h1>jQuery</h1> 

    <p class="result">Some result</p> 
    <script> 
    /*<![CDATA[*/ 
    $(document).ready(function(){ 
    var msg = '<script type="text/javascript" src="http://gist.github.com/3010234.js?file=new.html.erb"><\/script>"; 
    $('.result').html(msg); 
    }); 
    /*]]>*/ 
    </script> 
</body> 
</html> 
관련 문제