2011-02-01 1 views
1

jquery를 사용하는 페이지가 있는데 외부 파일이 있는지 감지하고 싶습니다. 그렇다면 div에로드하고 싶지만 그렇지 않으면 아무것도하지 않으려합니다.존재하는 경우 외부 html을 포함하는 방법, 그렇지 않으면 아무 것도하지 않습니까?

이 코드를 사용하고 있는데이 파일을로드하는 데 작동하지만 외부 파일이없는 경우 404 오류 페이지가로드됩니다. 나는 jquery에서 매우 새롭고 어떤 도움을 주셔서 감사합니다. 또한 파일을 확인하는 방법에는 코드를 여러 사이트에 편집없이 연결할 수 있도록 rootdomain +이 있어야합니다.

$(function() { 
     $('#test').load('/pages/test.html'); 
}); 

어떤 도움을 주시면 감사하겠습니다. 나는 일을 찾고 있었지만, 내가 발견 한 유일한 것은 URL이 유효하지 않은 경우 아무것도하지 않을 옵션이없는 수표 스크립트입니다. 이 간단한 코드를 직접 작성하는 방법을 알고 싶지만 지금 당장은 내 머리 위로 넘어갑니다. :)

제리는

답변

4

오히려 load()보다 ajax() 방법을 사용하여 시도하고 성공 콜백에 html()을 설정 : 사용

$(function() { 
    $.ajax({ 
     url: "/pages/test.html", 
     cache: false, 
     dataType: "html", 
     success: function(html){ 
      $('#test').html(html); 
     } 
    }); 
}); 
+0

좋아, 예 아무도 여기에 나를 위해 작동하지 않기 때문에 분명히 내가 뭔가 잘못하고 있어요. 실제로 사용되는 실제 코드는 확장명이 .html 인 URL을 사용하지 않습니다. 사이트의 백 엔드는 접미사가없는 "pages/test /"페이지의 이름 지정을 끝냅니다. 여전히 작동해야합니까? 왜냐하면 그렇게하지 않기 때문입니다. – Jeri

+0

내 대답이 업데이트되었습니다. 'dataType'의 설정을 추가했습니다. 그것을 밖으로보십시오 ... – hunter

2

Ajax 전화 :

$.ajax({ 
    url: '/pages/test.html', 
    success: function(data){ 
     $('#test').html(data); 
    }, 
    statusCode: {404: function() { 
    $('#test').html('Unable to retrieve data. Please try again'); 
    } 
}); 
+0

+1 jquery 1.5 ... nice – hunter

+0

와우, 나는 당신과 같은 대답을 올렸다! –

0

나는 비슷한 것을하려고 생각 해왔다. 나는 Ajax와 태클을하겠다. Google 검색을 통해 누군가 다른 사람이 이미 작성한 코드를 얻었습니다. [XUL Ajax site] [1] 원하는 것을 수행하는 것 같습니다. Ajax를 사용하여 다른 페이지를로드한다고 가정하면 좋습니다.

약간의 코딩을하면이 트릭을 사용하여 아무 것도 표시하지 않거나 원하는 페이지를 찾을 수없는 경우 다른 페이지를 표시 할 수 있습니다. 바로 지금 코드가 404를 표시하고, 그러나 그것은 사소한 변화입니다. 사실, 페이지 하단에 스크립트 아카이브를 다운로드하고 responseHTML.js 파일을 열면 다른 페이지가없는 경우 아무 것도하지 않도록 한 행의 주석 처리를 제거 할 수 있습니다.

코드 샘플은 하드 코드 된 div 이름을 사용하지만 사용자가 직접 수정할 수도 있고 매개 변수로 받아들이도록 함수를 수정할 수도 있습니다. 다른 페이지가 다운되면 리디렉션해야하는 내 사이트 중 하나에서이 코드를 매우 가까운 미래에 사용할 계획입니다. 나는 아약스 뭔가를하지 않고이 작업을 수행 할 수있는 좋은 방법을 생각할 수 없다

...

흠. 직장에서 산만 해지고 링크가 어쨌든로드되지 않았습니다. 다른 답변은 본질적으로 동일하며 jQuery의 경우에도 훨씬 간단합니다. 원시 자바 스크립트는 jquery도 사용하지 않는 페이지에 유용하기 때문에 여기에 링크를 남길만한 가치가 있습니다.

http://www.xul.fr/ajax/responseHTML-attribute.html

관련 문제