Um Ihr spezielles Problem zu lösen, ist es mir gelungen, Ihren JavaScript-Code in dieser Version fehlerfrei auszuführen:
javascript:(function();function password();function addHandlers()else}};addHandlers();alert("bookmarklet loaded");})();
Um zu sehen, ob Ihr Code funktioniert, habe ich alert("bookmarklet loaded");
am Ende des Bookmarklets ein hinzugefügt . Sie können also versuchen und sollten - seit ich Firefox 17 getestet habe - als Ergebnis eine Messagebox sehen. Wenn Ihr Code funktioniert oder nicht funktioniert, kann ich nicht sagen, aber das war natürlich nicht die Frage.
Es gibt einige Dinge, die Sie berücksichtigen oder die Umwandlung von JavaScript-Code in <script></script>
Tags einfacher für ein Lesezeichen übernehmen können
- In normalem JavaScript-Code kann eine Newline zwei Befehle trennen. Bookmarklets sind in einer Zeile, ersetzen Sie also den Zeilenumbruch durch ein Semikolon . .
Ein Beispiel hier
Lassen Sie uns ein Beispiel haben. Wir haben zwei Quellcode-Schnipsel mit zwei Anweisungen:
var anumber=1 var atext="hallo"
Wenn Sie alle in eine Zeile setzen (= den Zeilenumbruch in Whitespaces umwandeln), würden Sie zuerst Folgendes erhalten:
var anumber=1 var atext="hallo"
Dies ist kein gültiger JavaScript-Code mehr. Wenn Sie zwei Anweisungen in einer Zeile kombinieren möchten, müssen Sie die beiden Anweisungen mit einem Semikolon wie folgt trennen / trennen:
var anumber=1; var atext="hallo"
- Wickeln Sie den gesamten Code in eine Art dieser Art von Verschluss ein:
javascript:(function(){ [...here your code...] })();
Es gibt einige Websites, die die Lösung untersuchen. Wie hier .