4

アプリケーションに取り組んでいますが、ユーザーの操作に対して応答がありません。フォームを送信すると、空のページが表示されます。Anonieminloggenボタンも機能しません。どちらもjavascriptで作成されています。これは、 Android2.3以下を使用している場合にのみ発生します。私は多くの解決策を試しましたが、今のところうまくいきませんでした。すでに与えられた解決策でさえも機能しません。

アプリケーションへのリンク: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から実装されたアクションは、Android2.3以下のindex.htmlでは機能しません。どうすればこれらを修正できますか?

4

1 に答える 1

2

次の行を変更してみてください。

window.location = '#stats';

これについて:

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

更新:
場所に既にアンカー リンクが読み込まれている場合 ( など#home)、次の操作を行います。

window.location.href = window.location.href.substr(0, window.location.href.lastIndexOf('#')) + '#stats';
于 2012-09-24T12:15:58.217 に答える