2013-09-01 4 views
1

내 웹 사이트에는 다른 항목을 클릭하면 주요 내용이 변경되는 간단한 탐색 막대가 있습니다. 엄밀히 말하자면 모든 것이 하나의 파일 "main.html"에서 이루어집니다.이 파일에는 모든 것을 포함하고 jquery 함수 "load"를 사용하여 다른 html 파일을 동적으로로드하여 main.html에 배치합니다. 이 html 파일에 javascript가없는 한이 작업은 정상적으로 작동합니다. 하지만 거기에 $ (document) .ready에서 실행되어야하는 javascript 코드가 포함 된 embedd 파일이 하나 있습니다. 그러나 이것은 결코 발생하지 않습니다. 자바 스크립트에 오류가 없으며 결코 실행되지 않습니다. 나는 "main.html"의 DOM 만 변경하고 "onReady"이벤트가 발생하지 않기 때문이라고 생각합니다. 누군가 나에게 원하는 행동을 취하는 가장 좋은 방법이 무엇인지에 대한 아이디어를 줄 수 있습니까? "main.html"에 javascript를두면 일이 생길 수 있지만, 이것은 나를위한 선택 사항이 아닙니다.javascript를 포함하는 html 파일을 동적으로 포함하는 방법

미리 감사드립니다.

업데이트 : 문제가 해결되었습니다. 문제가 해결되었습니다. 내가 onReady() 이벤트 (Loic Coenen이 제안했듯이) 밖에서 javascript를 호출하면, 그것은 예상대로 작동합니다. 나는 또한 감싸 인 꼬리표를 제거했다. 나를 도운 모든 사람들에게 많은 감사를드립니다!

+0

iframe을 사용할 수도 있지만 최선의 방법은 아닙니다. – kangoroo

+0

어떤 종류의 자바 스크립트입니까? 포함 된 코드 (또는 적어도 실행되지 않는 JavaScript 섹션)를 게시 할 수 있습니까? '$ (document) .ready' 이벤트는 컨텐츠가 동적으로로드 될 때가 아니라 main.html이 처음 준비되었을 때만 발생한다는 점에 유의하십시오. – funkwurm

답변

1

당신은 나무가로드되었는지 당신의 other.html 스크립트를 알리기 위해 사용자 정의 이벤트를 트리거 할 수 있습니다 인라인 스크립트는 어떤 나쁜 버릇 어쨌든

전체 예제의 일부입니다. 나는 그것을 시도하지 않은,하지만 난 그런 걸 사용합니다 : 그렇게하지

$('#div_to_load').load('other.html',{},function(){ 
    $('#div_to_load').trigger('loaded') 
}) 

$('#div_to_load').on('loaded', function(){ // Code to execute }) 

other.html

에서 :

main.html에서을 그 트릭을 할 수 있는지 알아.

편집 : 나는 귀하의 other.html에 직접 포함 된 자바 스크립트가 어쨌든 실행되는 것으로 가정합니다.

+0

귀하의 가정은 옳았습니다. onReady() 이벤트 외부에서 javascript를 호출하면 예상대로 작동합니다. 또한 태그를 감쌌습니다. 나를 도운 모든 사람들에게 많은 감사를드립니다! –

+0

아, 그리고 실행할 스크립트가 'other.html' 파일의 끝에 위치하는지 확인하십시오. 필요할 때 DOM에 엘리먼트가 존재하는지 확인하십시오. –

+1

완료 :) 조언 주셔서 감사합니다, 실제로 상단에있는 스크립트를 가지고 왜 어떤 것들은 여전히 ​​유선되었다 궁금 해서요,하지만 모두 chaning 후 잘하고 있습니다 :) –

1

당신은 머리, 몸을 포함하는 main.html에 있습니다. 문제는 페이지를로드 할 때 다른 페이지에 머리와 몸체가있는 것일 수 있습니다. div에로드하는 경우 코드 만 있어야하며 자바 스크립트뿐 아니라 머리 또는 본문이 될 수 있습니다. 하지만 저항한다면 여기에 해결책이 있습니다.

$("#loadnewpagebttn").load(location.href+" foobar ",function(){ 
    $.getScript("js/yourscript.js"); 
}); 

해당 페이지에 대한 스크립트 파일을 만들어로드해야합니다.

jQuery.getScript(url, [ success(data, textStatus) ]) 
url - A string containing the URL to which the request is sent. 

success(data, textStatus) - A callback function that is executed if the request succeeds. 

$.getScript('ajax/test.js', function() { 
    alert('Load was performed.'); 
}); 

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

관련 문제