Полезная информация

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№115-11-2016 16:52:06

xoreax
Забанен
 
Группа: Members
Зарегистрирован: 07-11-2016
Сообщений: 54
UA: Palemoon 26.0

Bookmarklet "Source Chart" для пункта меню "Исходный код"

Есть такой замечтательный букмаклет View Source Chart bookmarklet
Я захотел прикрутить его в виде действия по кликам на пункт меню "Исходный код":
- по СКМ - загружается в виде IFRAME
- по ПКМ - должен бы открываться во вкладке. Но не работает. Подскажите как\почему?
Кнопка такая

init

Выделить код

Код:

// ---------------Для пункта меню "Исходный код страницы" действие открыть через букмаклет View SourceChart 
  /*init*/
(function sourceChart() {
   addEventListener("click", e => {
    if (e.target.id != "context-viewsource") return;

// открыть SourceChart в IFRAME на странице тут же
           if(e.button ==1) {
              e.preventDefault();
         var url = PlacesUtils.getURLAndPostDataForKeyword("schart-iframe")[0];
          loadURI(url);
           }

// открыть SourceChart во вкладке. Не работает ;((
           if(e.button ==2) {
               e.preventDefault();
                    var url = PlacesUtils.getURLAndPostDataForKeyword("schart-tab")[0];
                    loadURI(url);
                     }
    }, false, document.getElementById("contentAreaContextMenu"));
 })();


ну т.е. создал две закладки с именами и вызываю их. IFRAME работает. А во вкладке нет. Ошибка возникает уже в букмаклете. Но если так же точно сделать отдельную кнопку и положить в Код - работает как надо, открывает вкладку и ... вобщем отлично. А из пункта меню нет.
Чё делать? :sick:

Отсутствует

 

№216-11-2016 00:18:25

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
UA: Firefox 45.0

Re: Bookmarklet "Source Chart" для пункта меню "Исходный код"

С флагом, вроде, работает

скрытый текст

Выделить код

Код:

(menuitem => {
    var keys = ["schart-iframe", "schart-tab"];
    var load = url => url && gBrowser.loadURIWithFlags(url, Ci.nsIWebNavigation.LOAD_FLAGS_ALLOW_POPUPS);
    var func = "keywords" in PlacesUtils
        ? btn => PlacesUtils.keywords.fetch(keys[--btn], res => load(res.url.href))
        : btn => load(PlacesUtils.getURLAndPostDataForKeyword(keys[--btn])[0]);
    var listener = e => e.button && func(e.button, e.preventDefault(), menuitem.parentNode.hidePopup());
    menuitem && addEventListener("click", listener, false, menuitem);
})(document.getElementById("context-viewsource"));

Отсутствует

 

№316-11-2016 14:16:58

xoreax
Забанен
 
Группа: Members
Зарегистрирован: 07-11-2016
Сообщений: 54
UA: Palemoon 26.0

Re: Bookmarklet "Source Chart" для пункта меню "Исходный код"

Конечно работает! Какой интересный способ, буду изучать.
Благодарю за помощь и готовое решение.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]