2010-06-08 6 views
2

.load ajax 기능을 위해 jquery를 사용하기 시작했습니다. 특정 div에 외부 페이지를로드하면 잘로드됩니다. 외부 페이지 안에는 자바 스크립트를 머리에 붙이는 .append가있다. 이것은 초기로드에서 작동하지만로드 할 때 .load를 사용하면이 부분이 표시되지 않습니다.Jquery .load 및 inner jquery .append

//This is the .load for the div 
function loadContent(elementSelector, sourceUrl) { 

url = ""+sourceUrl+""; 
$(""+elementSelector+"").load(url); 
alert(url); 

} 

//This is the append in the other page that is embedded in a js 

var cUrl = "http://intensedebate.com/js/genericCommentWrapper2.php?acct="+idcomments_acct+"&postid="+idcomments_post_id+"&title="+idcomments_post_title+"&url="+idcomments_post_url; 
alert(cUrl); 


commentScript.type = "text/javascript"; 
commentScript.src = cUrl; 

$('head').append(commentScript); 

편집 : 경고 (cUrl)가 매번 실행됩니다. 그러나 머리는 isnt 렌더링을 추가합니다.

+3

왜 지구에 당신이 빈 문자열을 연결하는? – SLaks

+0

LOL 나는 interwebs에서 그 코드를 꺼냈다. – speekeazy

답변

1

jQuery를이 .load() 방법을 통해로드 된 HTML을 추가하기 위해 innerHTML 속성을 사용

jQuery를 검색된 문서를 구문 분석하고 현재 문서에 삽입 브라우저의 .innerHTML 속성을 사용합니다. 이 과정에서 브라우저는 종종 <html>, <title> 또는 <head> 요소와 같이 문서의 요소를 필터링합니다. 결과적으로 .load()로 검색된 요소가 브라우저에서 직접 문서를 검색 한 것과 완전히 다를 수 있습니다.

스크립트는 인, (적어도이 아닌 크로스 브라우저 호환 방식으로) .innerHTML을 사용하여 삽입 할 수 없습니다 왜 .load() 스크립트 추가 스크립트를 실행하지 않습니다.

추가 읽기 :

+0

다른 모든 스크립트가 실행됩니다. 만약 내가 그들에 경고를 넣어 잘 실행되지만. 헤더에 렌더링을 제공하지 않습니다. 이 문제를 해결할 더 좋은 방법이 있습니까? – speekeazy