使用带有Bookmarklets的Favicon

时间:2011-01-26 14:05:53

标签: bookmarklet favicon

我的webservice有一个bookmarklet。这是bookmarklet链接的代码:

(为了便于阅读而增加了空格)

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)
})())

我想为此bookmarklet链接添加favicon。我找到了this post

他们提供了一个用于添加favicon的示例javascript代码

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>’;

我想在我的bookmarklet代码上使用此方法。我必须结合这些代码。但这不起作用。

可读性版

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 :(得分:0)

我认为你从那个例子中弄错了。您不需要document.write直接编写HTML标记。我建议你再读一遍这篇文章并理解它的分支。

如果我不是更具体,我很抱歉,但我会重复与您链接的文章相同的内容。

答案 1 :(得分:0)

不,它在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识别出相同的网址(javascript代码)和标题,并重复使用该图标。