Как вызвать диалог закладок Firefox? - PullRequest
3 голосов
/ 06 февраля 2012

Я читал эту статью на MDN:
https://developer.mozilla.org/en/Places_utilities_for_JavaScript#Bookmark_Dialog
Но до сих пор не знаю, как вызвать такую ​​функцию, как

showAddBookmarkUI ()

Я пытался PlacesUtils.showAddBookmarkUI(), но это не сработало.

Ответы [ 2 ]

5 голосов
/ 06 февраля 2012

Эта статья устарела с 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)
{
  // No currently open places window, so open one with the specified mode.
  openDialog("chrome://browser/content/places/places.xul", 
             "", "chrome,toolbar=yes,dialog=no,resizable", "AllBookmarks");
}
else
{
  organizer.PlacesOrganizer.selectLeftPaneQuery("AllBookmarks");
  organizer.focus();
}

(код в основном скопирован из PlacesCommandHook реализация ).

0 голосов
/ 08 мая 2015

Для разработчиков SDK (Google Bump):

const utils     = require('sdk/window/utils');
const window    = utils.getMostRecentBrowserWindow();

let { Cu } = require('chrome');
Cu.import("resource:///modules/PlacesUIUtils.jsm");

Cu.import("resource://gre/modules/Services.jsm");    

//Adding bookmark    
var uri = Services.io.newURI("http://example.com/", null, null);
PlacesUIUtils.showBookmarkDialog({
    action: "add",
    type:   "bookmark",
    title:  "Predefined title",
    uri:    uri    
}, window);

//Editing existing one
PlacesUIUtils.showBookmarkDialog({ 
    action: "edit",
    type:   "bookmark",
    itemId: 575
}, window);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...