Использование Favicon с букмарклетами - PullRequest
0 голосов
/ 26 января 2011

У меня есть букмарклет для моего веб-сервиса.Это код ссылки на букмарклет:

(пробелы добавлены для удобства чтения)

javascript: void((function () {
    var e = document.createElement('script');
    e.setAttribute('type', 'text/javascript');
    e.setAttribute('src', 'http://www.girmiyor.co.cc/bookmarklet.js');
    document.body.appendChild(e)
})())

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

Они дают пример кода javascript для добавления favicon

javascript:’<!DOCTYPE html><html><head><title>Hello World</title><link rel=”icon” type=”image/png” href=”http://www.tapper-ware.net/devel/js/JS.Bookmarklets/icons/next.png” /></head><body>Hello World</body></html>’;

Я хочу использовать этот метод в коде моей закладки.Я должен объединить эти коды.Но это не работает.

версия для чтения :

javascript: void((function () {
    document.write('<html><head><link rel=\'shortcut icon\' href=\'http://www.girmiyor.co.cc/favicon.ico\'/></head></html>');
    var e = document.createElement('script');
    e.setAttribute('type', 'text/javascript');
    e.setAttribute('src', 'http://www.girmiyor.co.cc/bookmarklet.js');
    document.body.appendChild(e)
})())

Оригинальная версия:

javascript:void((function(){document.write('<html><head><link%20rel=\'shortcut%20icon\'%20href=\'http://www.girmiyor.co.cc/favicon.ico\'/></head></html>');var%20e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('src','http://www.girmiyor.co.cc/bookmarklet.js');document.body.appendChild(e)})())

Ответы [ 2 ]

0 голосов
/ 14 октября 2013

Нет, это не работает в Chrome и не очень хорошо в Firefox. До сих пор единственный способ иметь значок для букмарклета в Chrome - это создать файл закладки (.HTML), который импортирует пользователь, где к закладке прикреплен значок. Это очень больно, но все другие предположения почему-то терпят неудачу.

Для chrome создайте файл, содержащий:

<!DOCTYPE NETSCAPE-Bookmark-file-1>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
    <DT><H3 ADD_DATE="1346919281" LAST_MODIFIED="1381755311" PERSONAL_TOOLBAR_FOLDER="true">Favorite</H3>
        <DL><p><DT><A HREF="javascript:(your bookmarklet here *MUST BE THE SAME AS THE BOOKMARKLET CODE*)" ICON="data:image/png;base64,your base64 encoded icon here">Your bookmarklet name here *MUST BE THE SAME AS THE BOOKMARKLET*</A>
        <DT>
    </DL><p>
</DL><p>

Затем разрешите пользователю сохранить этот файл как mybookmark.html, а затем разрешите импортировать его в «Диспетчер избранного» (откройте диспетчер избранного, затем щелкните правой кнопкой мыши корневую папку и выберите «Импортировать закладку HTML ...»). Это абсолютно безопасно, поскольку импорт идет в новую папку, и его можно удалить сразу после импорта.

Chrome распознает тот же URL-адрес (код JavaScript) и заголовок и повторно использует значок.

0 голосов
/ 26 января 2011

Я думаю, что вы совершенно неправильно поняли этот пример.Вам не нужно документировать. Пишите HTML-теги напрямую.Я предлагаю вам еще раз прочитать статью и понять, как это происходит.

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

...