DOM을

2012-04-19 4 views
0

test1.html 파일에 JQuery와 응답 (스크립트 태그를 HTML 페이지를)로드하는 방법 :DOM을

<html> 
<head> 
<script src="jquery-1.7.2.js"> 
</script> 
<script> 

function loadfn(){ 

$.get('test.html',function(data){ 

alert($(data).text()); 
//$('body div#returnData').html(data); 
$.each(data, function(i, node) { 
    alert(i); 
    if (node.tagName == "SCRIPT") { 
     eval(node.innerHTML); 

    } else { 
     $(node).appendTo($('#returnData')); 
    } 

}); 

}); 
test1(); 
test2(); 
} 
</script> 
</head> 
<body> 
<div id="returnData" > 
</div> 
<input type="button" value="Click" onclick=loadfn()> 
</body> 
</html> 

인 test.html : 사실

<html> 
<head> 
<script src="/jquery-ui-timepicker-addon.js"> 
</script> 
</head> 
<script> 
function test1(){ 
alert('test1 function'); 
} 
</script> 
<script> 
function test2(){ 
alert('test2 function'); 
} 
</script> 
<body> 
<div id="testdiv"> 
Text field : <input type="text" value="Test Value"/> 
</div> 
</body> 
</html> 

내가 가지고있는 요구 사항이 test.html 페이지를 test1.html에로드 한 다음 해당 페이지에있는 스크립트 함수를 실행하십시오.

위의 코드 조각 나던하면 요구 사항을 충분. 코드 스 니펫에서 내가 뭘 잘못하고 있는지 알려주세요.

답변

0

당신은 스크립트 요소를로드 할 수 있도록이 같은 일을해야 할, 그래서 당신은 응답 당신은 "부하"그것은 당신의 DOM에 필요가 없습니다 scri" + "pt

var code = "<script>alert('Hi!');</scr"+"ipt>"; 
$('body').append($(code)[0]); 
+0

이유 스크립트 태그 만을 분할해야하는지 여부를 ??? 갈라 또는 둘 모두 Rajesh

+0

@Rajesh 수있다 - 돔 파서가 문자열 '

0

script 문자열을 대체 얻을 때 내 조언이다. 스크립트 태그의 경우, 당신은 ... 할 수

eval("<script>alert('Hi!');</script>"); 

UPDATE :

당신이 HTML 및 스크립트 모두 노드가 포함 될 경우 .. 다음을 수행

$.each(nodes, function(i, node) { //result might contain muliple HTML/Script nodes 

    if (node.tagName == "SCRIPT") { 
     eval(node.innerHTML); 
     //Appending to DOM also executes the script. So we do eval() instead, which does the equivalent. 
    } else { 
     $(node).appendTo($('#returnData')); //And append your HTML nodes to the desired target div 
    } 

}); 
+0

하지만 응답에는 HTML 태그와 스크립트 태그가 모두 포함됩니다. 위의 스 니펫에는 스크립트 태그 만 있습니다. 그 경우에 그것은 또한 작동 여부 아? – Rajesh

+0

@Rajesh : 그에 따라 업데이트 된 대답 .. –

+0

: 코드를 정교하게 만들고 위에 붙여 넣은 코드에이 코드를 사용하는 방법을 설명해 주시겠습니까? 콜백 메소드에서 HTML 내용을 div #returnData에로드해야하며 스크립트 내부에있는 함수에 발생합니다. 함수가 jquery get request 자체에서 호출 할 수 있는지 여부 ... Pls가 명확화하는데 도움이됩니다 .. – Rajesh