5 Stimmen

Kann URL jQuery anweisen, eine Funktion auszuführen?

Ich habe eine Frage zu URL und jQuery.

Kann ich URL angeben, um jQuery zu sagen, eine Funktion auszuführen?

z.B. http://www.website.com/about.html?XYZ

um eine Funktion auszuführen XYZ(); ?

10voto

jfriend00 Punkte 632952

Sie können Code in diese Webseite einfügen, der die Abfrageparameter der URL untersucht und dann, je nachdem, was er findet, eine beliebige Javascript-Funktion aufruft, die Sie wünschen.

In Ihrem speziellen Beispiel würde eine vereinfachte Version wie folgt aussehen:

// code that runs when page is loaded:
if (window.location.search == "?XYZ") {
    XYZ();
}

oder wenn Sie möchten, dass eine beliebige Funktion ausgeführt wird, die dort vorhanden ist, können Sie diese aus der Zeichenkette extrahieren und den Namen ausführen, der dort steht.

// code that runs when page is loaded:
if (window.location.search.length > 1) {
    var f = window.location.search.substr(1);  // strip off leading ?
    try {
        eval(f + "()");  // be careful here, this allows injection of javascript into your page
    } catch(e) {/* handler errors here */}
}

Das Zulassen von beliebigem Javascript in Ihrer Seite kann unerwünschte Sicherheitsauswirkungen haben oder auch nicht. Es wäre besser (wenn möglich), nur einen bestimmten Satz von bereits vorhandenen Funktionen zu unterstützen, die Sie suchen und wissen, dass sie sicher sind, anstatt beliebiges Javascript wie im zweiten Beispiel auszuführen.

2voto

Naftali Punkte 141792

In der URL-Leiste können Sie jederzeit Folgendes eingeben javascript:XYZ();

Probieren Sie es aus, nachdem diese URL geladen wurde: http://jsfiddle.net/maniator/mmAxY/show/

0voto

Jason Spick Punkte 5988

Ich glaube ja:

if(location.href == ""){
    xyz();
else{

}

0voto

karim79 Punkte 333786

Sie können eine global deklarierte Funktion über das Fensterobjekt aufrufen:

function bar(str) {
    alert("hello" + str);   
}

// assuming location is "http://example.com?bar"
var fn = window.location.search.replace("?", "");
window[fn](" Dovhakiin"); // 'hello Dovhakiin'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X