Ich denke, Sie sollten in der Lage sein, Folgendes zu tun:
javascript:(function() {
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://depot.com/file.js';
document.getElementsByTagName('body')[0].appendChild(newScript);
})();
Hier ist ein sehr nützliches Beispiel (fügen diese in die Adressleiste):
javascript:(function() {
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://cornify.com/js/cornify.js';
document.getElementsByTagName('body')[0].appendChild(newScript);
for (var i = 0; i < 5; i++) {
newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://cornify.com/js/cornify_run.js';
document.getElementsByTagName('body')[0].appendChild(newScript);
}
})();
Voila:
In der Tat ist dies cornify.com ist includ die Remote-Skripte in ihr Bookmarklet einfügen.
UPDATE:
Als @Ben noted in the other answer, es ist nicht so einfach, eine Funktion in Ihrem Remote-Skript definiert zu nennen. Ben schlägt eine Lösung für dieses Problem vor, aber es gibt auch eine andere Lösung, diejenige, die cornify verwenden. Wenn Sie http://cornify.com/js/cornify_run.js
auschecken, werden Sie sehen, dass es nur einen Funktionsaufruf in dieser Datei gibt. Sie könnten Ihren funcname()
Aufruf in einer separaten JavaScript-Datei platzieren, wie cornify tut, da Skriptblöcke garantiert in der Reihenfolge ausgeführt werden, in der sie eingefügt werden. Dann würden Sie beide Skripte beinhalten müssen, wie im folgenden Beispiel:
javascript:(function() {
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://depot.com/file.js';
document.getElementsByTagName('body')[0].appendChild(newScript);
newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://depot.com/file_run.js';
document.getElementsByTagName('body')[0].appendChild(newScript);
})();
Wo die file_run.js
einfach einen Anruf zu funcname()
enthält.
in die Adressleiste ... was meinst du? –
Ich schätze, du benutzt das für schlimme Dinge ... "sei nicht böse" :) – Topera
Was ist böse, wenn du ein paar Unicons hinzufügst? :) –