【发布时间】:2009-01-07 12:25:36
【问题描述】:
我想使用 javascript 代码为我的网页制作书签。我想要一个 javascript 代码来制作一个应该在新窗口中打开的书签。
我正在使用火狐。
【问题讨论】:
标签: javascript
我想使用 javascript 代码为我的网页制作书签。我想要一个 javascript 代码来制作一个应该在新窗口中打开的书签。
我正在使用火狐。
【问题讨论】:
标签: javascript
使用此功能:
function bookmark_us(url, title){
if (window.sidebar) // firefox
window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
var elem = document.createElement('a');
elem.setAttribute('href',url);
elem.setAttribute('title',title);
elem.setAttribute('rel','sidebar');
elem.click();
}
else if(document.all)// ie
window.external.AddFavorite(url, title);
}
【讨论】:
在 Firefox 中目前没有办法做到这一点(并且在 bugzilla 中有 bugs filed 跟踪此缺陷)
“没有办法做到这一点”是指您可以使用 Dreas 提供的功能,但您只能添加一个默认为侧边栏的书签。最终用户必须手动取消选中“在侧边栏中打开”选项。
【讨论】:
询问 Mozilla 用户组之一(可能是 mozilla.dev.tech.xul 或 mozilla.dev.tech.xpcom)。可以想象,您可以创建正确的 XPCOM 对象来访问浏览器的书签管理器——这需要启用权限(用户必须明确批准此操作)。不能移植到其他浏览器(显然),并且可能不是这样做的好方法。
我见过的大多数便于添加书签的网站(Jesse Ruderman's bookmarklet page 就是一个很好的例子)只是要求用户将适当的书签拖到他们选择的书签文件夹中,这似乎比尝试更直接/简单得多自动向书签添加内容。
【讨论】:
function bookmark_us(url, title){
if (window.sidebar) // firefox
window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
var elem = document.createElement('a');
elem.setAttribute('href',url);
elem.setAttribute('title',title);
elem.setAttribute('rel','sidebar');
elem.click();
} else if (document.all) // ie
window.external.AddFavorite(url, title);
}
当用于:
<a href="#" onclick="bookmark_us('http://www.yahoo.com/', 'Yahoo!');return false;">Bookmark Us</a>
上述功能在 Opera 9.x 中不再正常工作。它只是导航到 www.yahoo.com。
要在 Opera 9.x 中创建一个弹出“添加书签”对话框的链接,请使用以下命令:
function bookmark_us(url, title) {
if (window.sidebar && window.sidebar.addPanel) // firefox
window.sidebar.addPanel(title, url, "");
else if (window.external && 'undefined' != typeof window.external.AddFavorite) // ie
window.external.AddFavorite(url, title);
}
<a href="http://www.yahoo.com/" rel="sidebar" title="Yahoo!" onclick="bookmark_us(this.href, this.title);return false;">Bookmark Us</a>
【讨论】: