2009-05-07 8 views
4

das ist meine erste Frage .. so, hier gehen wir.Wie eine jquery Funktion nur mit der URL auslösen?

Ich habe eine Website, 100% XHTML/CSS mit einigen AJAX-Funktionen dank JQuery.

te Problem ist .. für alle "Unterseiten" .. die URL gleich bleibt (index.php) ..

meine Frage ist ..

jquery eine URL erlaubt Parameter zum Auslösen einer bestimmten Funktion?

beispiel: www.mypage.com -> home page .. wenn ich auf .. klicken wir sagen produkte .. die url wird die gleiche .. und wenn ich versuche, die url an einen freund senden (Kopieren & Paste) es wird www.mypage.com .. so .. wenn mein Freund auf den Link klickt, wird er auf die Homepage statt der Produktseite umgeleitet werden, die der Abschnitt ist, den ich mit ihm teilen möchte.

gibt es sowieso, um die URL wie .. www.mypage.com?s=products die jquery-Ereignis ohne Verwendung von PHP auslösen zu setzen?

danke im voraus.

Antwort

2

http://blog.rebeccamurphey.com/2007/12/04/anchor-based-url-navigation-with-jquery/

noch nie getan, aber diese Seite hat ziemlich geradlinig Methode.

Grundsätzlich geben Sie für jede logische Seite, die Sie haben, ein Anker-Tag an und aktualisieren Sie die URL entsprechend, wenn ein Benutzer zu dieser logischen Seite navigiert.

Wenn ein neuer Benutzer eintrifft, parsen Sie die Abfragezeichenfolge (wie oben erwähnt) und führen dann die entsprechende Navigationsaktion aus.

+0

das ist genau das, was ich suchte, löste es mein Problem ... Danke für den Link! :) – Andy

2

Es klingt für mich wie Sie die Querystring ändern möchten, ohne die Seite neu zu laden. Das ist unmöglich. Sie können den #anchor-Teil der URL ändern, sodass Ihre Ajax-Links den Ort auf mysite.com/#products setzen und dann jQuery verwenden, um die Ladezeit zu erkennen und entsprechend zu agieren.

2

Normalerweise ändern gefälschte Seiten in einer AJAX-Anwendung die Querystring durch Hinzufügen von etwas nach einem #, wie www.mypage.com/#products. Wenn Sie versuchen, die URL in JavaScript auf eine andere URL zu ändern, wird der Browser auf diese Seite umgeleitet. Wenn die Änderung jedoch nach erfolgt, bleibt sie auf der Seite (und versucht, ein Element mit dieser ID oben im Browserfenster einzufügen).

So konnten Sie so etwas wie die folgenden JavaScript versuchen, die URL zu setzen:

window.location.hash = 'products'; 

Dann können Sie für das aussehen, wenn Sie die Seite laden, so dass Sie wissen, welche Seite abzurufen.

Es gibt auch eine Reihe von vorgefertigten JavaScript-Bibliotheken, die dafür sorgen, dass die Historie in diesen Szenarios korrekt funktioniert, obwohl ich nicht genug weiß, um eine bestimmte Bibliothek zu empfehlen.

Verwandte Themen