2011-12-09 4 views
6

다른 페이지에서 div를 가져 와서 내 페이지에 삽입하려면 jquery load를 사용하고 있습니다. 이 같은 뭔가를해야만 : 다른 페이지에있는 사업부에서인라인 자바 스크립트로 jquery로드

$('#mydiv').load("/Pages/grid2.aspx" + " #otherpagediv"); 

는 사업부에서 자바 스크립트가있다. javascript는 HTML 컨텐트에서만 나오지 않습니다. 지정된 div에서 모든 것을 가져 오는 방법이 있습니까?

+0

는 당신이 우리가로드 된 DIV의 자바 스크립트와 함께 제공 할 수 있습니까? 코드는 초기입니까? – Theodore

답변

0

JavaScript도 응답해야합니다. /Pages/grid2.aspx이 서버 측에서 필요한 응답을 보내야하는지 확인해야합니다. 또한 load 메서드에 전달한 URL에 공백이 있습니다. 나는 당신이 그것을 바로 잡고 그것을 시도해야한다고 생각합니다. documentation에서

$('#mydiv').load("/Pages/grid2.aspx" + "#otherpagediv"); 
+0

실제로 이것은 'load' 함수의 설계에 의한 것입니다. 이 공간은 페이지의 일부를로드하는 데 사용됩니다. –

+0

@Alexander - 나는 이것을 알지 못했습니다. 감사합니다. – ShankarSangoli

2

:

참고 : 접미사 선택 표현하지 않고 URL을 사용) (.load 호출 할 때, 내용이 전에 제거 되는 스크립트(), .html 파일로 전달됩니다. 스크립트 블록을 버리기 전에 실행합니다.

.load()가 그러나 URL에 추가 선택기 표현 호출하면

는 스크립트들이 실행되지 않습니다 이유입니다 업데이트되는 DOM, 전에 밖으로 제거됩니다.

6

이 작동 :

$.get('/Pages/grid2.aspx', function (data) { 
    $('#mydiv').html($('<div></div>').html(data).find('#otherpagediv').clone()); 
}); 

라이브 데모 :http://jsfiddle.net/FRbnD/4/show/light/

이 데모를 이해를 포함하는 두 페이지의 소스 코드를 보려면 : 데모의
소스 코드를 : http://jsfiddle.net/FRbnD/4/
"다른 페이지"소스 코드 : http://jsfiddle.net/MWkSj/1/

아이디어는 $.get 요청을 통해 다른 페이지를 검색 한 다음 #otherpagediv을 찾아으로 복제하는 것입니다. 그런 다음 복제본을 #mydiv에 추가합니다. DOM에 복제본을 삽입하고 복제본에 SCRIPT 요소가 포함되어 있으면 해당 스크립트가 실행됩니다.

+0

이것은 확실히 jQuery API 페이지에 추가되어야합니다! –

0

http://www.coursesweb.net/ajax/execute-javascript-code-ajax-response_t이 페이지 도움이 될 수

, 나는 스크립트를 사용한

, 그것은 사용 평가()

// this function create an Array that contains the JS code of every <script> 
// then apply the eval() to execute the code in every script collected 
function parseScript(strcode) { 
var scripts = new Array();   // Array which will store the script's code 

// Strip out tags 
while(strcode.indexOf("<script") > -1 || strcode.indexOf("</script") > -1) { 
var s = strcode.indexOf("<script"); 
var s_e = strcode.indexOf(">", s); 
var e = strcode.indexOf("</script", s); 
var e_e = strcode.indexOf(">", e); 

// Add to scripts array 
scripts.push(strcode.substring(s_e+1, e)); 
// Strip from strcode 
strcode = strcode.substring(0, s) + strcode.substring(e_e+1); 
} 

// Loop through every script collected and eval it 
for(var i=0; i<scripts.length; i++) { 
try { 
    eval(scripts[i]); 
} 
    catch(ex) { 
    // do what you want here when a script fails 
    } 
} 
}