Я искал вокруг, но не могу найти никакой информации об этом; может быть, я не использую лучшие условия поиска.
Должен ли букмарклет JavaScript, т. е. ссылка, использующая псевдопротокол «javascript:», которую можно перетащить в адресную строку браузера и открыть на любой странице, быть действительным URL-адресом? Я слышал, что это так, но я хотел бы найти окончательный ответ.
В 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, но он также будет кодировать круглые скобки, фигурные скобки и т. д.