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

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

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

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

   

nfmzkvmx



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

Код:
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
 
#bhTooltipTextBox {
    -moz-binding: url('data:application/xml,\
\
<?xml version="1.0"?>\%0A\
<bindings xmlns="http://www.mozilla.org/xbl">\%0A\
    <binding id="places_tooltips">\%0A\
        <implementation>\%0A\
            <constructor>\%0A\
                <![CDATA[\%0A\
                    const popup = this.linkedPopup = this.parentNode,\%0A\
                        pl = PlacesUtils,\%0A\
                        plBms = pl.bookmarks,\%0A\
                        onShow = this.linkedPopup.popupshowingHandler = ev => {\%0A\
                            let bm = popup.triggerNode;\%0A\
                            if (!bm) return;\%0A\
                            let plAttrs = bm._placesNode;\%0A\
                            if (bm.localName == "treechildren") {\%0A\
                                let tree = bm.parentNode,\%0A\
                                    tbo = tree.treeBoxObject,\%0A\
                                    cell;\%0A\
                                    cell = ev ? tbo.getCellAt(ev.clientX, ev.clientY) : tbo.getCellAt(null, popup.boxObject.y - 21);\%0A\
                                if (!(cell && cell.row != -1)) return;\%0A\
                                plAttrs = tree.view.nodeForTreeIndex(cell.row);\%0A\
                            };\%0A\
                            if (!(plAttrs && plAttrs.type == 0)) return;\%0A\
                            let bmId = plAttrs.itemId,\%0A\
                                date = int => !!int ? new Date(int / 1000).toLocaleString() : null,\%0A\
                                obj = {\%0A\
                                    "%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%BE%3A%20%20":\%0A\
                                    (() => {try {return date(plBms.getItemDateAdded(bmId))} catch(ex) {return date(plAttrs.dateAdded)}})()\%0A\
                                    , "%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%BE%3A%20%20":\%0A\
                                      (() => {try {return date(plBms.getItemLastModified(bmId))} catch(ex) {return date(plAttrs.lastModified)}})()\%0A\
                                    , "%D0%9F%D0%BE%D1%81%D0%B5%D1%89%D0%B5%D0%BD%D0%BE%3A%20%20":\%0A\
                                      date(plAttrs.time)\%0A\
                                    , "%D0%92%D1%81%D0%B5%D0%B3%D0%BE%20%D0%BF%D0%BE%D1%81%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B9%3A%20%20":\%0A\
                                      plAttrs.accessCount\%0A\
                                    , "Keywords%3A%20%20":\%0A\
                                      (() => {try {return plBms.getKeywordForBookmark(bmId)} catch(ex) {}})()\%0A\
                                    , "%D0%9C%D0%B5%D1%82%D0%BA%D0%B8%3A%20%20":\%0A\
                                      plAttrs.tags\%0A\
                                    , "%D0%9A%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8%3A%5Cn":\%0A\
                                      (arr => {\%0A\
                                          try {\%0A\
                                              let uri = Services.uriFixup.createFixupURI(plAttrs.uri, 0),\%0A\
                                                  ids = pl.getBookmarksForURI(uri);\%0A\
                                              for(let id of ids) {\%0A\
                                                  let descs = pl.getAnnotationsForItem(id);\%0A\
                                                  for(let desc of descs)\%0A\
                                                      arr.push(desc.value);\%0A\
                                              }\%0A\
                                              return arr.length > 1\%0A\
                                                  ? arr.map((str, inx) => str = inx + 1 + ")\\t" + str).join("\\n\\n")\%0A\
                                                  : arr.join("");\%0A\
                                          } catch(ex) {}\%0A\
                                      })([])\%0A\
                                };\%0A\
                            for(let prop in obj) {\%0A\
                                if (!!obj[prop]) {\%0A\
                                    let node = this.appendChild(document.createElement("label"));\%0A\
                                    node.className = "tooltip-label extra-item";\%0A\
                                    node.textContent = decodeURIComponent(prop) + obj[prop];\%0A\
                                }\%0A\
                            }\%0A\
                        },\%0A\
                        onHide = this.linkedPopup.popuphidiningHandler = () => {\%0A\
                            for(let node of [...this.getElementsByClassName("extra-item")])\%0A\
                                this.removeChild(node);\%0A\
                        };\%0A\
                    onShow();\%0A\
                    popup.addEventListener("popupshowing", onShow);\%0A\
                    popup.addEventListener("popuphidden", onHide);\%0A\
                ]]>\%0A\
            </constructor>\%0A\
            <destructor>\%0A\
                (() => {\%0A\
                    this.linkedPopup.removeEventListener("popupshowing", this.linkedPopup.popupshowingHandler);\%0A\
                    this.linkedPopup.removeEventListener("popuphidden", this.linkedPopup.popuphidiningHandler);\%0A\
                })()\%0A\
            </destructor>\%0A\
        </implementation>\%0A\
    </binding>\%0A\
</bindings>\
\
    ') !important;
}

Всего записей: 186 | Зарегистр. 09-04-2017 | Отправлено: 04:47 11-07-2017 | Исправлено: nfmzkvmx, 07:12 14-07-2017
   

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

Компьютерный форум 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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru