Bitte markieren Sie dies nicht als Duplikat. Ich habe alle auf StackOverflow vorgeschlagenen Methoden ausprobiert und keiner von ihnen funktioniert. Sie alle geben mir die URL der verweisenden Seite, nicht die aktuelle Seite. Oder sie funktionieren überhaupt nicht. Sogar window.location.href gibt die verweisende Seiten-URL zurück, nicht die aktuelle Seiten-URL. Ich benutze jQuery Mobile 1.4.5.Wie erhalten Sie die aktuelle Seiten-URL in jQuery Mobile 1.4.5?
Zum Beispiel sagen, ich war auf page1.php und ich klickte auf einen Link zu page1.php? Getvar = 42. Seite 1 sieht wie folgt aus:
<!doctype html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css">
<script src="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js"></script>
</head>
<body><div data-role="page" data-dom-cache="false">
<a href="page1.php?getvar=42">Click Here</a>
<?php if ($_GET['getvar']=='42'): ?>
<script>
console.log(window.location.href);
console.log(document.location.href);
console.log($.mobile.activePage.data('url'));
</script>
<?php endif ?>
</div></body></html>
Wenn ich den Link in der oben genannten Seite klicken und ich sehe, was es sagt in der Konsole. Ich bekomme:
http://hostname/page1.php
http://hostname/page1.php
/page1.php
Ich habe auch versucht, diese Anrufe Einwickeln zu() in einer jQuery $ (document) .ready() Funktion ohne Änderung im Ergebnis console.log.
<script>
$(function() {
console.log(window.location.href);
console.log(document.location.href);
console.log($.mobile.activePage.data('url'));
});
</script>
Wie Sie sehen können, sind keine davon die vollständige URL. Das Gleiche gilt für die Verknüpfung mit einer anderen Datei. Dies betrifft nicht nur Seiten mit GET-Variablen in der URL. Ich erwarte zu sehen /page1.php?getvar=42
Ich habe Themen auf Stack Overflow gefunden, die die gleiche Frage stellen, aber keine der Antworten funktionieren für mich. Vielleicht verwenden sie eine andere Version von jQuery Mobile. Ich benutze jQuery 1.4.5, wie Sie sehen können.
Bis jetzt die einzige Lösung, die ich gefunden habe, ist ajax Laden von Seiten in jQuery mobile deaktivieren, indem Sie Data-ajax = "false" auf einem übergeordneten Container. Aber es muss einen besseren Weg geben.
(By the way, der Grund, warum ich diese brauche, ist so, dass ich die aktuelle Seite neu zu laden kann. Aber zur Zeit alle Versuche, die aktuelle Seite nimmt mich einfach zurück auf die verweisende Seite neu zu laden. Und das ist der Grund.)
Dies wird Ihnen helfen http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript. Was Sie suchen, heißt Query String. – ProgrammerV5
Die Abfragezeichenfolge wird nicht in der URL angezeigt. Das ist das Problem. – phpguru
Nun, dann können Sie nicht bekommen, was nicht da ist :) Sie sagten speziell "Zum Beispiel sagen, ich war auf page1.php und ich klickte auf einen Link zu page1.php? Getvar = 42" – ProgrammerV5