Чтобы решить вашу конкретную проблему, мне удалось заставить ваш код JavaScript работать без ошибок в этой версии:
javascript:(function();function password();function addHandlers()else}};addHandlers();alert("bookmarklet loaded");})();
Чтобы увидеть, работает ли ваш код, я добавил alert("bookmarklet loaded");
в конце букмарклета. Так что вы можете попробовать и должны - так как я тестировал на Firefox 17 - увидеть, как результат, появляется окно сообщения. Если ваш код работает или не работает, я не могу сказать, но, конечно, это был не вопрос.
Есть некоторые вещи, которые вы можете иметь в виду или сделать преобразование кода JavaScript в <script></script>
тегах более легким для адаптации к букмарклету
- В обычном коде JavaScript символ новой строки может разделять две команды. Букмарклеты находятся в одной строке, поэтому заменяйте разрыв строки точкой с запятой ; ,
Пример здесь
Давайте иметь пример. Давайте получим два фрагмента исходного кода с двумя инструкциями:
var anumber=1 var atext="hallo"
Когда вы помещаете все в одну строку (= переводите строку в пробелы), вы сначала получите следующее:
var anumber=1 var atext="hallo"
Это больше не допустимый код JavaScript. Если вы хотите объединить две инструкции в одну строку, вам нужно разделить / разделить две инструкции с помощью точки с запятой, например:
var anumber=1; var atext="hallo"
- Оберните все, что вы код в виде такого рода замыкания:
javascript:(function(){ [...here your code...] })();
Есть довольно много сайтов, чтобы исследовать решение. Как здесь .