2009-04-11 4 views
1

Ich habe den ganzen Tag an dieser Anwendung herumgebastelt und hatte ein paar Schwierigkeiten. Im Grunde muss das Bookmarklet dem Benutzer ermöglichen, viele Funktionen aus mehreren JavaScript-Dateien zu verwenden, obwohl alle Funktionen, die der Benutzer verwendet, aus einer Datei aufgerufen werden. Im Grunde enthält es alle notwendigen Dateien, um eine bestimmte Funktion auszuführen. Es verwendet jQuery, und ich habe festgestellt, dass es sehr schwer ist, jQuery auf Ihrem Bookmarklet laufen zu lassen.Bookmarklet zum Ausführen mehrerer Aufgaben

Meine Frage ist: Wie kann ich mehrere Javascript-Code-Dateien in Ihr Bookmarklet laden?

Mit freundlichen Grüßen
Emil Hajric.

Antwort

1

können Sie die Skripte in das Dokument einbetten das Bookmarklet auf f.ex arbeitet, wenn Ihr Bookmarklet so etwas wie

javascript:void((function(){var e=document.createElement('script'); 
    e.setAttribute('type','text/javascript'); 
    e.setAttribute('charset','UTF-8'); 
    e.setAttribute('src','http://yoursite/bookmarklet.js'); 
    document.body.appendChild(e)})()); 

ist, können Sie so viele Script-Elemente hinzufügen, wie Sie wollen, versuchen Sie jquery Hinzufügen da drin.

1

Wenn Sie mehrere JavaScript-Dateien mit einem Bookmarklet ausführen müssen, empfehle ich, eine Funktion im Bookmarklet zu erstellen, um Dateien zu importieren.

Diese Funktion könnte als

var importJs=function(jsUrl){ 
    var s=document.createElement("script"); 
    s.setAttribute("src",jsUrl); 
    document.body.appendChild(s); 
}; 

Um geschrieben werden, um tatsächlich in einem Bookmarklet zu verwenden, erklären nur diese Funktion, und es dann einmal rufen Sie für jede Datei, die Sie importieren.

javascript:(function(){ 
    var importJs=function(jsUrl){ 
    var s=document.createElement("script"); 
    s.setAttribute("src",jsUrl); 
    document.body.appendChild(s); 
    }; 
    importJs("http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"); 
    importJs("http://your.domain.com/codeThatUsesJQuery.js"); 
})(); 

(Hinweis: Um dies tatsächlich als Bookmarklet zu verwenden ist es notwendig, alle Linien in eine einzige Zeile zu verbinden.)

+0

Ich glaube nicht, es ist die beste ist jQuery zu platzieren am Ende der ' Körper ". – nyuszika7h

+1

Sobald die Seite geladen ist, ist es egal, wo Sie das Skript-Tag einfügen. Das Skript wird in beide Richtungen geladen. Wenn du es nicht im Körper haben willst, dann kannst du mit document.getElementsByTagName ("head") [0] .appendChild (s) gehen –