Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Расширения для Firefox/Mozilla Firefox Extensions (часть 8)

Модерирует : gyra, Maz

gyra (16-09-2017 13:48): Расширения для Firefox/Mozilla Firefox Extensions (часть 9)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

momo2000



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

/*global Components, Services*/
 
const Cu = Components.utils, Cc = Components.classes, Ci = Components.interfaces;
 
Cu.import("resource://gre/modules/Services.jsm");
 
const overlay = "chrome://browser/content/bookmarks/bookmarksPanel.xul";
 
function sidebar_change(sidebar) {
    if (sidebar.currentURI.spec !== overlay) {
        return false;
    }
 
    var bookmarks = sidebar.contentDocument.getElementById("bookmarks-view"), place;
 
    if (!bookmarks || !(place = bookmarks.getAttribute("place"))) {
        return false;
    }
 
    bookmarks.setAttribute("place-default", place);
    bookmarks.place = "place:queryType=1&folder=BOOKMARKS_MENU";
 
    return true;
}
 
function sidebar_restore(sidebar) {
    if (sidebar.currentURI.spec !== overlay) {
        return false;
    }
 
    var bookmarks = sidebar.contentDocument.getElementById("bookmarks-view"), place;
 
    if (!bookmarks || !(place = bookmarks.getAttribute("place-default"))) {
        return false;
    }
 
    bookmarks.place = place;
    bookmarks.removeAttribute("place-default");
 
    return true;
}
 
function window_load(doc) {
    var sidebar = doc.getElementById("sidebar");
 
    if (!sidebar) {
        return false;
    }
 
    var stop = Ci.nsIWebProgressListener.STATE_STOP, win = Ci.nsIWebProgressListener.STATE_IS_WINDOW;
    sidebar.addProgressListener(sidebar.old_bookmarks_sidebar = {
        QueryInterface: function (id)
        {
            if (id.equals(Ci.nsIWebProgressListener) || id.equals(Ci.nsISupportsWeakReference) || id.equals(Ci.nsISupports)) {
                return this;
            }
 
            throw Components.results.NS_NOINTERFACE;
        },
 
        onStateChange: function (progress, request, flag) {
            return flag & stop && flag & win ? sidebar_change(sidebar) : false;
        },
        onLocationChange: function () {},
        onProgressChange: function () {},
        onStatusChange: function () {},
        onSecurityChange: function () {}
    });
 
    return sidebar_change(sidebar);
}
 
function window_unload(doc) {
    var sidebar = doc.getElementById("sidebar");
 
    if (!sidebar) {
        return false;
    }
 
    sidebar.removeProgressListener(sidebar.old_bookmarks_sidebar);
 
    return sidebar_restore(sidebar);
}
 
function window_check(win) {
    if (win.document.readyState === "complete") {
        return window_load(win.document);
    }
 
    return win.addEventListener("load", function listener() {
        win.removeEventListener("load", listener, false);
 
        return window_load(win.document);
    }, false);
}
 
const window_watcher = {
    observe: function (win, action) {
        return action === "domwindowopened" ? window_check(win) : false;
    }
};
 
function startup() {
    var all = Services.ww.getWindowEnumerator();
    while (all.hasMoreElements()) {
        window_check(all.getNext());
    }
 
    return Services.ww.registerNotification(window_watcher);
}
 
function shutdown() {
    var all = Services.ww.getWindowEnumerator();
    while (all.hasMoreElements()) {
        window_unload(all.getNext().document);
    }
 
    return Services.ww.unregisterNotification(window_watcher);
}
 

Всего записей: 1732 | Зарегистр. 14-04-2007 | Отправлено: 08:31 18-08-2016 | Исправлено: momo2000, 08:31 18-08-2016
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Расширения для Firefox/Mozilla Firefox Extensions (часть 8)
gyra (16-09-2017 13:48): Расширения для Firefox/Mozilla Firefox Extensions (часть 9)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru