2013-08-27 5 views
9

Bootstrap Modal window을 사용하여 원격 소스를 통해로드 된 일부 html을 표시합니다. remote 옵션을 사용하고 url을 전달하여 Bootstrap 문서의 권장 방법으로이 작업을 수행하고 있습니다.부트 스트랩 모달 리모트 소스 오류 처리

예를 들어 (here 바와 같이) :

$('#id').modal({remote:'index.html'}); 

내 질문 : 그것은 사용할 수 없습니다 index.html을 경우에 오류를 처리 할 수 ​​있습니까?

설명서에 대한 답변이 없습니다.

나는이 일이 거의 일어나지 않아야한다는 것을 알고 있습니다. 그러나 누군가가 느린 연결 또는 느린 연결을 가지고 있다면, 나는 빈 모달로 매달리는 것보다 오히려 그들에게 오류를 보여줄 것입니다. 작업중인

콜백을 사용하지 않는 것을 나타냅니다
… 
if (this.options.remote) this.$element.load(this.options.remote) 
… 

, 요청의 결과를 직접 DOM 요소에 할당됩니다

+1

here가 나는 1+ 준 글로벌 아약스 처리기에 대한 자세한 내용을보실 수 있습니다을하지만, 나는 또한거야 그것을 추가하려면 나머지 파일이 없을 때 단일 파일이 잘못 작성 될 가능성이 낮습니다. 즉,이 애셋이 동일한 서버/도메인에서로드되었다고 가정하면 앱/페이지가 다른 영역에서 문제가 발생할 수 있습니다. 상태. –

+1

고마워요! 그래, 난 동의. 모바일에서이 문제를 특히 눈치 챘습니다. 명백한 이유 때문에 연결 범위가 항상 완벽하지는 않으므로 연결을 끊을 수 있습니다. 이런 일이 발생하면 오류/시간 초과에 대해 (내가 말할 수있는 한) 어떠한 조건도 없으므로 전체 앱이 정지됩니다.하드 리셋을 할 때까지 페이지를 덮고있는 어두운 배경을 얻을 수 있습니다. – nostromo

답변

5

당신의 앱이 실행되는 모든 Ajax 요청에 연결되며, 구현은 다음과 같이 보일 것이다 :

$(document).ajaxError(function(event, jqxhr, settings, exception) { 
    //Since this handler is attach to all ajax requests we can differentiate by the settings used to build the request 
    if (settings.url == "index.html") { 
    //Handle error 
    } 
}); 

당신은

+0

오 스냅! 큰 포인트. –

3

는 현재 Github에서의 환매 특약 (/js/modal.js)는 모달 플러그인 정의에서이 단편을 포함 . 워드 프로세서 jQuery.load에서

:

이 방법은 서버에서 데이터를 가져올 수있는 가장 간단한 방법입니다. 전역 함수가 아닌 메쏘드이고, 함축적 인 콜백 함수를 가지고 있다는 점을 제외하면 $ .get (url, data, success)와 대체로 비슷합니다. 입니다. 성공적인 응답이 감지되면 (즉, textStatus 이 "성공"또는 "수정되지 않음"인 경우) .load()는 요소의 HTML 콘텐츠를 반환 된 데이터로 설정합니다.

$("#success").load("/not-here.php", function(response, status, xhr) { 
    if (status == "error") { 
    var msg = "Sorry but there was an error: "; 
    $("#error").html(msg + xhr.status + " " + xhr.statusText); 
    } 
}); 

그것은 트위터 팀이 오류를 처리하지 로 선택했다 보인다

나중에 문서에 load와 실패를 감지하는 방법에 대해 설명합니다 코드 snippt가있다.

은 아마이 문제를 시작하는 시간, 이런 종류의 일을 처리 할 것 "모바일 최초의"라이브러리처럼 보인다 정상적으로 ;-) https://github.com/twbs/bootstrap/issues

당신은 글로벌 아약스 오류 처리기를 구현할 수 있습니다