2012-11-02 5 views
3

asp.net 4에서 jQuery (1.7.2)를 상당히 많이 사용하는 클라이언트 용 웹 사이트를 만들었습니다. 이 사이트는 모든 최신 브라우저, 모바일 클라이언트 등에서 잘 작동합니다.jquery document.ready asp.net scriptmanager를 사용하여 webview에 사이트로드시

클라이언트는 자신의 비즈니스에 대한 트위터 계정을 가지고 있으며, 누군가가 따르는 경우 사이트에 대한 링크가 포함 된 자동 응답 메시지를받습니다. 그는 고객이 iOS 기기의 트위터 앱을 사용하여 링크 위스트를 클릭하면 사이트가 제대로 작동하지 않는다는 문제를 제기했습니다.

트위터가 webview를 사용하여 사파리가 아닌 웹 페이지를 표시한다는 사실을 확인했습니다. 자바 스크립트를 통해 asp.net scriptmanager 인스턴스를 얻으려고하면 오류가 발생합니다. 문서가 준비되지 않게되어 jQuery document.ready 이벤트가 다시 시작되지 않습니다! 후속 스크립트를 window.load에 넣으면 제대로 작동합니다. 나는 단지 window.load 내에서 두 번째 경고를 얻을, 나는 웹보기에서 해당 페이지를로드하는 경우 그래서

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
     <title></title> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 
    </head> 
    <body> 
     <form id="form1" runat="server"> 

      <asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager> 

      <script type="text/javascript"> 

       $(document).ready(function() { 
        if (typeof (Sys) === "object") { 
         var manager = Sys.WebForms.PageRequestManager.getInstance(); 
        } 
       }); 

       $(document).ready(function() { 
        alert("staging1"); 
       }); 
       $(window).load(function() { 
        alert("staging2"); 
       }); 
      </script> 
     </form> 
    </body> 
</html> 

을 :

나는 전체가 같이 보이는이를 테스트하는 매우 간단한 페이지를 만들어 . 변수 manager을 선언하는 줄을 꺼내면. 두 번째 document.ready 이벤트가 발생할 때 두 경고를 모두 얻습니다.

모든 브라우저에서 페이지를 실행하면 항상 두 가지 경고가 표시됩니다.

아무도이 문제를 보지 못했거나 작동하지 않는 이유가 있습니까?

어떤 도움이나 전문 지식을 환영합니다!

감사

+1

당신이 그것을 좁혔다는 것이 좋다! 나는 그 webview 대 사파리의 차이를 생각하지 않았을 것이다. 다음은 유용한 두 가지 링크입니다. http://stackoverflow.com/questions/10996028/uiwebview-when-did-a-page-really-finish-loading http://stackoverflow.com/questions/908367/uiwebview-how -to-identify-the-last-webviewdidfinishload-message? rq = 1 –

+0

양식 머리 부분에 jquery document.ready를 써 넣으십시오. – Rajpurohit

+0

JP 링크를 이용해 주셔서 감사합니다. 아래 해결책을 참조하십시오. – user1793938

답변

3
이 수행해야

:

사람이 같은 문제가있는 경우
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 

    <script type="text/javascript"> 

    $(document).ready(function() { 
     if (typeof (Sys) === "object") { 
     var manager = Sys.WebForms.PageRequestManager.getInstance(); 
     } 
    }); 

     $(document).ready(function() { 
      alert("staging1"); 
     }); 
     $(window).load(function() { 
      alert("staging2"); 
     }); 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 

    <asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager> 

    </form> 
</body> 
</html> 
+0

이 문제가 아니 었습니다. 누구도 같은 문제가있는 경우를 대비하여 – user1793938

+0

을 사용해 주셔서 감사합니다 ... microsoft 런타임에서 웹 뷰 브라우저를 올바르게 식별하지 못하여 자바 스크립트를 제공하지 않는 버그를 참조하십시오. 이 기사의 솔루션을 따라 가면 이제는 제대로 작동합니다 ... http://connect.microsoft.com/VisualStudio/feedback/details/631438/asp-net-4-0-issue-with-browsercap-incorrectly 탐지 사파리 – user1793938

관련 문제