Должен ли букмарклет JavaScript быть правильным URL? - PullRequest
1 голос
/ 03 марта 2010

Я искал вокруг, но я не могу найти информацию об этом; может быть, я не использую лучшие условия поиска.

Должен ли быть правильный URL-адрес букмарклета JavaScript, т. Е. Ссылки, использующей псевдопротокол "javascript:", который можно перетащить в адресную строку браузера и открыть на любой странице? Я слышал, что это так, но я хотел бы найти окончательный ответ.

В Google Reader есть букмарклет Note in Reader, в котором используется следующий код JavaScript:

javascript:var%20b=document.body;var%20GR________bookmarklet_domain='http://www.google.com';if(b&&!document.xmlVersion){void(z=document.createElement('script'));void(z.src='http://www.google.com/reader/ui/link-bookmarklet.js');void(b.appendChild(z));}else{}

Кажется, что закодированные пробелы (% 20) являются попыткой придерживаться действительного URL, но являются ли фигурные скобки и точки с запятой, например, допустимыми символами URL?

Если ответ «да», есть ли функция JavaScript или онлайн-утилита, которую я могу использовать, чтобы сделать мой букмарклет действительным URL-адресом за один шаг? В JavaScript есть encodeURI, но он также будет кодировать круглые скобки, фигурные скобки и т. Д.

Ответы [ 2 ]

1 голос
/ 03 марта 2010

Ответ на ваш вопрос - да, (Тем не менее, некоторые браузеры, такие как Firefox, автоматически экранируют такие вещи, как пробелы). Если вы хотите сделать это, хорошим инструментом будет Perl Script Javascript Bookmarklet Джона Грубера (да, парень из Markdown) !)

0 голосов
/ 03 марта 2010

Я сделал несколько букмарклетов, и я не помню, чтобы закодировать их вот так. Так что я думаю, что это не обязательно (но может быть необходимо для некоторых браузеров, таких как IE)

...