javascript - jquery mobile $.mobile.changePage() Windows Phone 8 funktioniert nicht Cordova/PhoneGap




jquery-mobile windows-phone-8 (3)

Code Index.html

<div data-role="page" id="index">
    <div data-role="header">
        <h3>
            First Page
        </h3>
    </div>
    <div id="data">

    </div>
    <div data-role="content">
        <button data-role="button" id="changePage">Pass parameters with changePage function</button>
        <a href="second.html"  data-role="button">Or through a basic link</a>
    </div>
</div>

und Meine js-Datei

 $(document).on('tap', "#changePage",function () {     
              $.mobile.changePage('second.html', { reloadPage : false, changeHash : true });
    }); 

und der zweite.html

<div data-role="page" id="second">
    <div data-role="header">
        <h3>
            Second Page
        </h3>
    </div>
    <div data-role="content">
<div id="data"></div>
    <div data-role="button" id="clickBtn">click me</div>
    <div data-role="button" id="paqeBtn">change Page</div>
  </div>
 </div>

Alle diese Dateien werden mit PhoneGap / Cordova gepackt und auf dem Gerät ausgeführt.

Im Grunde versuche ich, second.html in die index.html-Seite zu laden, indem ich $ .mobile.changePage ("second.html") beim Antippen-Ereignis durch Bindung an die ID #changePage in meiner JS-Datei verwende.

Dies funktioniert perfekt in

  • Android-Telefone

  • Internet Explorer 9 und 10

  • Webkit-Browser

Aber das Problem ist, dass der obige Code unter Windows Phone 8 nicht funktioniert

Das Gerät, auf dem ich teste, ist das verwendete Nokia Lumia 920 Jquery Framework

  • jquery.mobile-1.3.2.js

  • jquery-2.0.3.js

Ich habe auch versucht mit $ .ajax als dataType: "html" und $ .load-Funktionen alle diese funktionierte perfekt in anderen oben genannten Umgebung mit Ausnahme von Windows Phone 8 (Gerät oben erwähnt)

Ich bin dem auch gefolgt

StackOverflow-Lösung für Windows-Telefone

Nichts hat geklappt!!!!!


Ich hatte das gleiche Problem gerade neulich. changeHash muss in $.mobile.changePage('second.html', { reloadPage : false, changeHash : true });

Es gibt ein ähnliches Problem auf älteren Android-Geräten.


var url = window.location.href;
                            url = url.split('#').pop().split('?').pop();
                            url = url.replace(url.substring(url.lastIndexOf('/') + 1),"second.html");
                            $.mobile.changePage(url, { reloadPage : false, changeHash : false });

Ich habe die von OMAR jquery 1.9.1 vorgeschlagene Jquery verwendet. und müssen dennoch die URL analysieren, bevor Sie sie an die mobile Änderungsseite übergeben. Der obige Code funktionierte einwandfrei.

Der obige Code funktioniert immer noch nicht für Jquery 2.0+, sondern stattdessen die Version 1.9.x !! -

Mein Vorschlag ist nicht, jquery 2.0+ für Windows Phones zu verwenden

Es funktioniert nicht für Windows Phone einschließlich Ajax Aufruf wie $ .ajax, $ .load, $ .get


Woran ich gerade arbeite, ist ein bisschen ähnlich wie bei @conor antwort. Versuchen Sie vielleicht, die Seiten css id als Selektor zu verwenden.

mit jquery mobile 1.3

jQuery:

$(document).ready(function () {

              $(".myinfo").on("tap", function(){
                                 $.mobile.changePage("#MyInfo", { transition: "none", reverse: false, changeHash: true});
                                   });

HTML:

 <div data-role="page" id="MyInfo">
        <div data-role="header" data-theme="e">

Verknüpfung:

     <li><a href="#" data-icon="custom" class="myinfo">My Info</a></li>




windows-phone-8