Превратить JavaScript в закладку или букмарклет?

6813
vishal

Я создал один скрипт, который показывает пароли при наведении курсора, как Windows 8 на щелчок.

Я сделал эту функцию через JavaScript с помощью следующего кода.

function text()function password()function addHandlers()else}}addHandlers() 

Извините за упакованный код JavaScript, но я хочу создать закладку или букмарклет для запуска скрипта thiss ...

Я старался:

javascript:(mycode); 

Но это не сработало ...

3
закладка не очень конкретная. Существует более одной программы, которая знает что-то вроде закладки / букмарклета. Конечно, кажется, что вы имеете в виду браузер. Ну, есть Firefox, IE, Opera и т.д .. какой? humanityANDpeace 11 лет назад 0

2 ответа на вопрос

3
humanityANDpeace

Чтобы решить вашу конкретную проблему, мне удалось заставить ваш код 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...] })();

Есть довольно много сайтов, чтобы исследовать решение. Как здесь .

В обычном коде javascript символ новой строки может разделять две команды. Букмарклеты находятся в одной строке, поэтому заменяйте разрыв строки точкой с запятой; что это значит .. ты можешь уточнить подробнее ?? vishal 11 лет назад 0
Я рекомендую всегда ставить точки с запятой, хотя вы можете прочитать об этом подробнее здесь [http://inimino.org/~inimino/blog/javascript_semicolons). Karan 11 лет назад 2
0
Kar.ma

Вы были на самом деле довольно близко. Вам просто нужно выразить это так:

javascript:(function())(); 

В вашем примере вы можете попробовать это:

javascript:(function();function password();function addHandlers()else}};addHandlers()})(); 

Обратите внимание на точки с запятой, когда вы минимизируете свой код, некоторые из них вам не хватает.

PS После публикации своего ответа я попробовал ваш код, и мне это нравится! Полезный трюк, я сохранил этот букмарклет Kar.ma 5 лет назад 0