2012-09-24 2 views
3

애플리케이션에서 작업하고 있지만 사용자 동작에 대한 응답을 제공하지 않습니다. 양식을 제출하면 빈 페이지가 나타납니다. Anoniem inloggen 버튼도 작동하지 않습니다. 둘 다 자바 스크립트로 만들어집니다. 이는 Android 2.3 이하를 사용할 때만 발생합니다. 나는 많은 해결책을 시도해 왔지만 지금까지 아무도 노력하지 못했습니다. 이미 제공된 솔루션조차도 작동하지 않습니다.Android 2.3 이하에서 Jquery Mobile이 작동하지 않는 자바 스크립트

응용 프로그램 링크 : http://goo.gl/MsZfO.

<script type="text/javascript"> 
    $(document).ready(function($) { 
    checkMail(); 
    $.post('stats.php', 
      function (data, textStatus) { 
       $('#stats').empty(); 
       $('#stats').append(data).page(); 
       $('#stats').page('destroy').page(); 

      }); 

      $.post('welcome.php', 
      function (data, textStatus) { 
       $('#mail').empty(); 
       $('#mail').append(data).page(); 
       $('#mail').page('destroy').page(); 

      }); 

    function checkMail() { 
        var item = localStorage.getItem('maillogin'); 
      if (item !== null) { 
       window.location = '#stats'; 
       } 
      else{ 
       window.location = '#mail'; 
       } 
    } 
    }); 
</script> 

인덱스 본체 : 여기

<div data-role="page" data-theme="a" id="mail" data-transition="none"> 
</div> 
<div data-role="page" data-theme="a" id="stats" data-transition="none"> 
</div> 

그리고 문제의 페이지입니다 (welcome.php) 스크립트를

$(document).ready(function($) { 
    $('#mailform').submit(function() { 
      $.mobile.showPageLoadingMsg(); 
      var email = document.getElementById('email'); 
      var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
       if (!filter.test(email.value)) { 
         $.mobile.changePage("#mail"); 
         alert('Dit is geen geldig mailadres'); 
         $.mobile.hidePageLoadingMsg(); 
         return false 
        } 
       else{ 
       if($('#checkbox').attr('checked')) { 
      $.post('mailinsert.php', 
      $('#mailform').serialize()) 
       localStorage.setItem('maillogin', $('#email').val()); 
       $('#inlogmail').empty(); 
       $('#inlogmail').append(localStorage.getItem('maillogin')).trigger('create'); 
       $.post('stats.php', 
             function (data, textStatus) { 
             $('#stats').empty(); 
             $('#stats').append(data).page(); 
             $('#stats').page('destroy').page(); 
             $.mobile.changePage("#stats"); 
             $.mobile.hidePageLoadingMsg(); 
             }); 


       } 
       else{      $.mobile.changePage("#mail"); 
         alert('De voorwaarden zijn niet geaccepteerd'); 
         $.mobile.hidePageLoadingMsg(); 
         return false; 
         } 

       } 
      }); 
$('#skipright').click(function(){ 
       localStorage.setItem('maillogin', 'anoniem'); 
       $.post('stats.php', 
             function (data, textStatus) { 
             $('#stats').empty(); 
             $('#stats').append(data).page(); 
             $('#stats').page('destroy').page(); 
             $.mobile.changePage("#stats"); 
             $.mobile.hidePageLoadingMsg(); 
             }); 

}); 
}); 

이 응용 프로그램의 인덱스 스크립트는 다음과 같습니다

문제 페이지 (welcome.php) 본문 :

<form id="mailform"> 
<div data-role="fieldcontain"> 
<label for="email">E-mail:</label> 
<input name="email" id="email" type="text" /> 
<br /> 
<div class="ui-grid-b ui-corner-all ui-shadow ui-bar ui-bar-b"> 
<input type="checkbox" name="checkbox" id="checkbox" data-role="none"/> 
<label for="checkbox">Ja, ik accepteer de voorwaarden</label> 
</div></br> 
<input type="submit" value="Stemmen maar!"/> 
</div> 
</form> 
<h3><a class="skipright" id="skipright">Anoniem inloggen</a></h3> 
</div> 

즉, .click 및 .submit과 같은 welcome.php에서 구현 된 동작은 android 2.3 이하의 index.html에서 작동하지 않습니다. 어떻게 해결할 수 있을까요? 이 하나

window.location = '#stats'; 

: 당신의 다음 줄을 변경하여

답변

1

시도

window.location.href += '#stats'; 

UPDATE :
이미 위치에로드 앵커 링크가있는 경우 (#home을 같은) 다음을 수행하십시오.

window.location.href = window.location.href.substr(0, window.location.href.lastIndexOf('#')) + '#stats'; 
+0

전에 시도했지만 불행히도 이것은 작동하지 않습니다. Javascript로 작성된 단추는 작동하지 않습니다. – Simdo

+0

가능한 한 다른 해결책으로 내 대답을 업데이트했습니다. 시도해보십시오. – Nelson

+0

본인의 질문을 실제 오류로 업데이트했습니다. 오류는 window.location이 아니라 사용자 조치입니다. 사용자 조치는 Android 2.3 이하에서는 작동하지 않습니다. – Simdo

관련 문제