【发布时间】:2011-05-10 15:18:43
【问题描述】:
我有一个小书签,它启动一个 window.open javascript 函数来用我的小书签打开一个小窗口——一个用于在任何访问的站点和我的服务器之间进行通信的外部功能。我希望在将小书签添加到书签工具栏时显示 favicon。我意识到书签是 javascript,没有与之关联的域,因此要实现这个目标要么困难要么不可能。
我对问题的理解:
网站图标易于理解,是 HTML 文档头部的链接。浏览器可以在通过引用为实际站点添加书签时拉取它。但是,正如您所见,我的书签是从不存在 HTML 的 javascript 启动代码中运行的,因此没有指向 favicon 的链接。不过我还没准备好放弃,我觉得可以打针……
截至目前,小书签启动代码如下所示:
当前脚本 -- 小书签,无 favicon(注意所有代码的格式都带有换行符 -- 并非在所有浏览器中都有效,通常只有一行)
javascript:void(window.open(
'http://mydomain.com/bookmarklet/form?u='
+encodeURIComponent(location.href)+
't='+encodeURIComponent(document.title),
'test','status=0,toolbar=0,location=0,menubar=0,
resizable=false,scrollbars=false,height=379,width=379'
));
我找到的最接近解决方案的方法如下,但它不会打开新窗口——只是创建一个以 html 为页面的新选项卡:
工作图标,没有书签窗口
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:'<!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>';
window.open('http://mydomain.com/bookmarklet/form?u='
+encodeURIComponent(location.href)+
'&t='+encodeURIComponent(document.title),
'test',
'status=0,toolbar=0,location=0,menubar=0,resizable=false,
scrollbars=false,height=379,width=379').void(0);
我所做的是在触发 window.open() 之前使用 html 结构,这成功地在新窗口中打开了我的书签,但书签图标没有显示图标。
逻辑解决方案:
我对此的想法是让小书签指向一个页面,该页面只是一个带有网站图标链接的 HTML 文件和<head> 中的启动脚本。但是,我不希望在新选项卡中打开一个空白 HTML 文件,然后启动一个弹出窗口。解决方法..?
存在一个类似的问题,但我似乎没有找到我正在寻找的答案:
How to have favicon / icon set when bookmarklet dragged to toolbar?
工作 javascript favicon 的来源(但没有书签):
http://www.tapper-ware.net/blog/?p=97
我会对您目前对此的了解/想法感兴趣
【问题讨论】:
标签: javascript bookmarklet favicon