5

:사파리 구성 요소가 숨겨져있을 때 jQuery 모바일에서 페이지를로드하는 중 오류를 복구하는 방법은 무엇입니까? 모바일 웹 응용 프로그램은 아이폰 OS의 홈 화면에 추가하고이 메타 태그와 사파리 구성 요소를 숨기도록 선택할 때

<meta name="apple-mobile-web-app-capable" content="yes" /> 

페이지 중 하나를로드하는 중에 오류가있는 경우, jQuery를 모바일 오류 메시지가 오버레이를 보여줍니다 현재 페이지의 모든 링크가 작동하지 않습니다. 사파리 구성 요소가 숨겨져있어 페이지를 쉽게 다시로드 할 수있는 방법이 없습니다. 홈 화면으로 돌아가서 모바일 웹 앱을 다시 열어야합니다. 이 시나리오에서 오류를 복구하는보다 우아한 방법이 있습니까? 모바일 jQuery에서 페이지로드 오류가 발생한 후 페이지를 다시로드하는 방법이 있습니까?

답변

1

오류 이벤트가 발생하면 window.location.reload(true)을 호출하면 첫 번째 인수가 캐시에서 다시로드하는 대신 true이기 때문에 페이지를 다시 다운로드 할 수 있습니다.

페이지를 요청할 필요가 없다고 생각되면 첫 번째 인수를 생략하면됩니다. 재미있는 상황입니다

2

...

내가 당신이라면 나는 사용자가 오류 팝업을 클릭하면 그 기능 상태로 돌아갈 것입니다 바인딩 .live() 이벤트를 구현하려고 할 것입니다.

파이어 버그를 사용하여 팝업 div가 갖는 구별되는 클래스를 찾으십시오.

1

pageloadfailed 이벤트를 처리하고 복구 할 수 있습니다. 설명서 및 샘플 코드는 다음과 같습니다. http://jquerymobile.com/test/docs/api/events.html

$(document).bind("pageloadfailed", function(event, data){ 

    // Let the framework know we're going to handle things. 

    event.preventDefault(); 

    // ... attempt to load some other page ... 
    // at some point, either in this callback, or through 
    // some other async means, call resolve, passing in 
    // the following args, plus a jQuery collection object 
    // containing the DOM element for the page. 

    data.deferred.resolve(data.absUrl, data.options, page); 

});