2016-11-11 4 views
0

Ich verstehe derzeit nur die Grundlagen von Bookmarklets. Zum Beispiel weiß ich, dass ein Bookmarklet zu schaffen, die einfach eine Warnung erzeugt, würden Sie den CodeWie kann ich meinen JavaScript-Code in ein Bookmarklet umwandeln?

<a href="javascript:(function() { alert(); })()">Drag Me To Bookmarks</a> 

jedoch verwenden, was, wenn Sie komplexere Javascript, mit mehreren Hilfsmethoden? Zum Beispiel, wie ich etwas JavaScript-Code erstellen wollte, um die Warnung "Guten Morgen" oder "Guten Abend" abhängig von der Tageszeit zu geben. Nehmen wir weiter an, dass ich diese zwei Funktionen verwenden, wie unten

gezeigt
function getMessage() { 
    if(morning) { 
     return "Good Morning"; 
    } else if(evening) { 
     return "Good Evening"; 
    } 
} 

function myAlert() { 
    alert(getMessage()); 
} 

Wie würde sich dies in ein Bookmarklet gedreht werden nun, dass die JS hat mehrere Funktionen?

+1

Verwenden Einzelverpackung Auto-Start-Funktion und halten restlichen Code in seinem Inneren. Ein Beispiel könnte Visual Events sein: http://www.sprymedia.co.uk/article/visual+event+2 – Justinas

+0

Sie können auch Ihren Code "normal" schreiben, dann Ben Alman's jQuery Bookmarklet Generator verwenden, um es zu generieren. Es lädt auch jQuery (Code, der entfernt werden kann), wenn Sie es brauchen: http://benalman.com/projects/run-jquery-code-bookmarklet/ – Mottie

Antwort

1

Sie würden wickeln Sie es nur in einer unmittelbar ausgeführte Funktion wie das Beispiel:

javascript:(function() { 

    function getMessage() { 
     if(morning) { 
      return "Good Morning"; 
     } else if(evening) { 
      return "Good Evening"; 
     } 
    } 

    function myAlert() { 
     alert(getMessage()); 
    } 

    myAlert(); 

})() 
+0

Danke für Ihre Hilfe. Gibt es eine Möglichkeit, die Funktion() inner in einer separaten Datei zu speichern, wenn sie zu groß ist? –

+0

Nicht, wenn Ihr Plan das Lesezeichen ist, das Skript, AFAIK. –

Verwandte Themen