这篇文章已经过时,适用于Firefox 4。这个功能现在已经被实现在PlacesUIUtils
模块中,方法是showBookmarkDialog()
。你可以像这样调用它:
Components.utils.import("resource://gre/modules/Services.jsm");
var uri = Services.io.newURI("http://example.com/", null, null);
Components.utils.import("resource:///modules/PlacesUIUtils.jsm");
PlacesUIUtils.showBookmarkDialog({
action: "add",
type: "bookmark",
uri: uri,
title: "Example bookmark"
}, window);
这是一个内部模块,因此并没有真正的文档,API 可能会在未来再次更改。您可以看到它如何被使用的示例
在源代码中。顺便说一句,如果您实际想要打开的是书签列表而不是“添加书签”对话框,则可以这样做:
Components.utils.import("resource://gre/modules/Services.jsm");
var organizer = Services.wm.getMostRecentWindow("Places:Organizer");
if (!organizer)
{
openDialog("chrome://browser/content/places/places.xul",
"", "chrome,toolbar=yes,dialog=no,resizable", "AllBookmarks");
}
else
{
organizer.PlacesOrganizer.selectLeftPaneQuery("AllBookmarks");
organizer.focus();
}
(这段代码大部分来自于PlacesCommandHook
实现)