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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№690123-09-2013 22:23:43

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 27.0

Re: Custom Buttons

yahoo.gif
custombuttons-0.0.5.7pre1-20130923
mozdev.org - custombuttons: devbuilds

Marked compatible with Firefox 27.0a1
    + Added: support for 'Browser Console'
    # Fixed: buttons doesn't work on Firefox 26 because 'lookupMethod' method was removed from Components
    # Fixed: "External edit…" button doesn't work, if path to Firefox profile contains non-ASCII characters
    # Fixed: several bugs and mistypes

Отредактировано voqabuhe (23-09-2013 22:25:57)

Отсутствует

 

№690223-09-2013 22:58:48

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

Re: Custom Buttons

bunda1 пишет

А мне бы только код который откроет Browser Console в вкладке

Ну, выбросить сайдбар из этого кода, вроде, не сложно ведь, типа

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

Выделить код

Код:

const
    { devtools } = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}),
    { DebuggerServer } = Cu.import("resource://gre/modules/devtools/dbg-server.jsm", {}),
    { DebuggerClient } = Cu.import("resource://gre/modules/devtools/dbg-client.jsm", {}),
    HUDService = window.HUDService || Cu.import("resource:///modules/HUDService.jsm", {}).HUDService,

    title = "Browser Console",
    url = devtools.Tools.webConsole.url;

function onLoad(e) {
    var doc = e.target;
    if (doc.location != url) return;
    doc.title = title;
    var win = doc.defaultView;

    if (!DebuggerServer.initialized) {
        DebuggerServer.init();
        DebuggerServer.addBrowserActors();
    }
    var client = new DebuggerClient(DebuggerServer.connectPipe());
    client.connect(function() {
        client.listTabs(function(response) {
            var globals = JSON.parse(JSON.stringify(response));
            delete globals.tabs;
            delete globals.selected;
            var options = { form: globals, client: client, chrome: true };
            var promise = devtools.TargetFactory.forRemoteTab(options);
            promise.then(function(target) HUDService.openBrowserConsole(target, win, win));
        });
    });
}
addEventListener("load", onLoad, true, gBrowser);

this.onclick = function(e) {
    if (e.button) return;
    for (var tab of gBrowser.visibleTabs) {
        if (tab.linkedBrowser.currentURI.spec == url) break;
        tab = null;
    }
    gBrowser.selectedTab = tab || gBrowser.addTab(url);
};

Отсутствует

 

№690323-09-2013 23:07:59

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Спасибо.

Отсутствует

 

№690426-09-2013 00:34:02

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 24.0

Re: Custom Buttons

Infocatcher пишет
middlemouse.paste пишет

Классно, можешь еще сделать совместимость с кнопкой Edit Custom Button in Tab, сейчас в отдельном окне раскраска кода работает, а во вкладке раскраски нет.

Не могу, во вкладке этот модуль редактора не работает и выдает вот такую ошибку:

Error: SecurityError: The operation is insecure.
Source file: chrome://browser/content/devtools/orion.js
Line: 7105

Видимо, будет работать в Firefox 27:
https://bugzilla.mozilla.org/show_bug.cgi?id=816756
https://github.com/Infocatcher/Custom_Buttons/issues/17
https://github.com/Infocatcher/Custom_Buttons/issues/18


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№690528-09-2013 13:13:23

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

Всем добрый день! Нужна кнопка для Custom Buttons, делающая нотариально заверенные скриншоты страниц. Подскажите в какую сторону копать или ткните носом, если такое уже есть.


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№690628-09-2013 13:37:19

Sekotka
Участник
 
Группа: Members
Зарегистрирован: 07-02-2010
Сообщений: 44
UA: Firefox 24.0

Re: Custom Buttons

Здравствуйте! Помогите пожалуйста сделать кнопку проверки индексации страницы в Яндекс.
Суть проста, при нажатии на кнопку мы должны вводить в поиск следующий URL

url:www.ТЕКУЩИЙ-URL | url:ТЕКУЩИЙ-URL

В поисковой строке это выглядит примерно так: http://yandex.ru/yandsearch?text=    далеее тот запрос, что написан выше


Ранее Вы сделали аналогичную кнопку для добавления страницы в AddURL, вот ее код:

Выделить код

Код:

loadURI("http://webmaster.yandex.ru/addurl.xml?url=" + encodeURIComponent(content.location.href))

Т.е. в этом случае все тоже самое, но нужно проверить с www. и без.

Помогите пожалуйста!

Отредактировано Sekotka (28-09-2013 15:32:19)

Отсутствует

 

№690729-09-2013 02:16:16

Iczer
Участник
 
Группа: Members
Зарегистрирован: 25-08-2007
Сообщений: 63
UA: Firefox 10.0

Re: Custom Buttons

Подскажите, как добавить новую загрузку во встроенный менеджер загрузок:

Выделить код

Код:

var path="d:\folder\file.ext";
var url="http://www.site.com/file.ext";
...

так чтобы потом можно было запустить/остановить скачку, открыть папку назначения

Отсутствует

 

№690829-09-2013 12:19:23

Sekotka
Участник
 
Группа: Members
Зарегистрирован: 07-02-2010
Сообщений: 44
UA: Firefox 24.0

Re: Custom Buttons

okkamas_knife пишет

Спасибо! Но немного не работает!
Вместо

Выделить код

Код:

http://webmaster.yandex.ru/addurl.xml?url=

Необходимо применить

Выделить код

Код:

http://yandex.ru/yandsearch?text=

Ну с этим проблем нет. Проблема в том, что на примере данной страницы, ссылка выглядит так:

Выделить код

Код:

http://yandex.ru/yandsearch?text=http%3A%2F%2Fforum.mozilla-russia.org%2Fviewtopic.php%3Fid%3D9591%26p%3D309%20|%20http%3A%2F%2Fforum.mozilla-russia.org%2Fviewtopic.php%3Fid%3D9591%26p%3D309&lr=213
--
Сам запрос в поле: 
http://forum.mozilla-russia.org/viewtopic.php?id=9591&p=309 | http://forum.mozilla-russia.org/viewtopic.php?id=9591&p=309

[b](пропал www еще)[/b]

А должна выглядеть так:

Выделить код

Код:

http://yandex.ru/yandsearch?text=url%3Awww.forum.mozilla-russia.org%2fviewtopic.php%3fid%3d9591%26p%3d309%20|%20url%3Aforum.mozilla-russia.org%2fviewtopic.php%3fid%3d9591%26p%3d309&lr=213
---
Сам запрос в поле
url:www.forum.mozilla-russia.org/viewtopic.php?id=9591&p=309 | url:forum.mozilla-russia.org/viewtopic.php?id=9591&p=309

Т.е. необходимо убрать у каждой части http:// и вместо него добавить url: + наблюдается проблема с www

Спасибо за помощь!

Отредактировано Sekotka (29-09-2013 12:22:35)

Отсутствует

 

№690929-09-2013 14:37:01

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

W@ld_Lii пишет

Всем добрый день! Нужна кнопка для Custom Buttons, делающая нотариально заверенные скриншоты страниц. Подскажите в какую сторону копать или ткните носом, если такое уже есть.

Нашёл кнопку с нужным функционалом, но она не работает

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

Выделить код

Код:

this.changeCase = function(evt) {

  if(evt.shiftKey || evt.button==1) {
    this.showPopup(this);
    return;
  }


switch(evt.button) {

case 0:
var win = window.content;
var w = win.document.width;
var h = win.document.height;

var pos = document.getElementById('status-bar');
var scrollbox = document.createElement('scrollbox');
scrollbox.width = '1';
scrollbox.height = '1';
pos.appendChild(scrollbox);

var canvas = win.document.createElement('canvas');
canvas.style.display = 'inline';
canvas.width = w;
canvas.height = h;
scrollbox.appendChild(canvas);

var ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.save();
ctx.scale(1.0, 1.0);
ctx.drawWindow(win, 0, 0, w, h, "rgb(255,255,255)");
ctx.restore();

var url = canvas.toDataURL("image/png");
const IO_SERVICE = Components.classes['@mozilla.org/network/io-service;1']
   .getService(Components.interfaces.nsIIOService);
url = IO_SERVICE.newURI(url, null, null);

var fp = Components.classes['@mozilla.org/filepicker;1']
   .createInstance(Components.interfaces.nsIFilePicker);
fp.init(window, "Save Screenshot As", fp.modeSave);
fp.appendFilters(fp.filterImages);
fp.defaultExtension = "png";
fp.defaultString = win.document.title + ".png";
if ( fp.show() == fp.returnCancel || !fp.file ) return;

var wbp = Components.classes['@mozilla.org/embedding/browser/nsWebBrowserPersist;1']
   .createInstance(Components.interfaces.nsIWebBrowserPersist);
wbp.saveURI(url, null, null, null, null, fp.file);

pos.removeChild(scrollbox);
break;

case 1:
    this.showPopup(this);
break;

    case 2:
loadURI(<![CDATA[javascript:pdf_url=location.href;location.href='http://pdfmyurl.com?url='+escape(pdf_url)]]>);
}}


this.showPopup = function(node) {
  var popup = document.getElementById("custombuttons-contextpopup");
  var x = node.boxObject.x;
  var y = node.boxObject.y + node.boxObject.height;
  document.popupNode = node;
  popup.showPopup(node, x, y, "popup", null, null);
}

this.setAttribute("onclick", "this.changeCase(event);");
this.setAttribute("context", "");
this.tooltipText = "L = Save web page as PNG \nM = CB Menu \nR = Save web page as PDF";


Подскажите, что и где подправить, дабы завести эту кнопку. PDF не нужен, только сохранение в скриншот.


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№691029-09-2013 22:14:18

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

W@ld_Lii
Save page as PNG / PDF

Отредактировано bunda1 (29-09-2013 22:22:48)

Отсутствует

 

№691129-09-2013 22:36:02

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

bunda1, премного благодарен!!!!


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№691230-09-2013 18:18:44

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

bunda1, ещё вопрос можно по этой кнопке?
Скриншот делается с прозрачной полосой справа на месте скроллбара. Это можно устранить или проще забить?


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№691330-09-2013 18:54:43

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

W@ld_Lii пишет

bunda1, ещё вопрос можно по этой кнопке?
Скриншот делается с прозрачной полосой справа на месте скроллбара. Это можно устранить или проще забить?

Не знаю как устранить :/

Отсутствует

 

№691430-09-2013 19:20:40

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

Ну и ладно, обрежем редактором изображений.


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№691530-09-2013 19:30:12

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 24.0

Re: Custom Buttons

bunda1 пишет

Не знаю как устранить :/

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

Отсутствует

 

№691630-09-2013 19:30:27

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 24.0

Re: Custom Buttons

W@ld_Lii пишет

Скриншот делается с прозрачной полосой справа на месте скроллбара. Это можно устранить или проще забить?

Можно попробовать задать флаги для CanvasRenderingContext2D.drawWindow().


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№691730-09-2013 22:28:50

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

okkamas_knife, спасибо работает.:)


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№691830-09-2013 22:50:31

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Караул :o, заметил глюк на FF24 + custombuttons-0.0.5.7pre1-20130923
Если в кнопке которое открывает меню есть строка this.type = "menu-button" код кнопки инициализируется два раза и все обработчики дублируются. Вот пример:

Выделить код

Код:

alert("1");

const searchbar = document.getElementById("searchbar");
const searchContainer = document.getElementById("search-container");


// Добавить контекстное меню с поисковиками для кнопки ................................
function searchService() {
   return Components.classes["@mozilla.org/browser/search-service;1"].getService(Components.interfaces.nsIBrowserSearchService);
}
_a = searchService();

this.selectEngine = function(aNode, aEvent) {
   var engine = aEvent.target.engine;
   var ss = searchService();
   ss.currentEngine = ss.getEngineByName(engine.name);
   aNode.engine = engine;
   aNode.image = aEvent.target.getAttribute("src");
}

this.populateMenu = function(aNode) {
   var ss = searchService();
   var engines = ss.getVisibleEngines({ });
   const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";

   //while( aNode.firstChild && aNode.firstChild.localName != "menuseparator" ) {
   while( aNode.firstChild && aNode.firstChild != managerSeparator ) {
          aNode.removeChild( aNode.firstChild );
          }

   for ( var i = engines.length - 1; i >= 0; i--) {
         var mi = document.createElementNS(kXULNS, "menuitem");
         mi.id = "cb-search-" + engines[i].name;
         mi.className = "menuitem-iconic searchbar-engine-menuitem";
         mi.setAttribute("label", engines[i].name);
         if ( engines[i].iconURI )
              mi.setAttribute("src", engines[i].iconURI.spec);
              mi.engine = engines[i];
         if ( mi.engine == ss.currentEngine )
              mi.style.fontWeight = "bold";
              mi.setAttribute("onclick",  "event.preventDefault(); event.stopPropagation(); parentNode.parentNode.selectEngine(parentNode.parentNode, event)");
         aNode.insertBefore( mi, aNode.firstChild );
         }

   var engines = gBrowser.mCurrentBrowser.engines;
   if ( !(engines && engines.length) ) return;

   var sep = document.createElement("menuseparator");
   sep.id = "cb-search-addengine-separator";
   aNode.insertBefore( sep, managerSeparator );

   for ( var i = 0; i < engines.length; i++) {
         var engine = engines[i];
         
         var menuitem = document.createElement("menuitem");
         menuitem.setAttribute("id", "cb-search-addengine-engine-" + (i + 1));
         menuitem.setAttribute("class", "menuitem-iconic addengine-item");
         menuitem.setAttribute("tooltiptext", engine.uri);
         menuitem.setAttribute("uri", engine.uri);
         menuitem.setAttribute("title", engine.title);
         menuitem.setAttribute("label", "Добавить «" + engine.title + "»");
         if ( engine.icon) menuitem.setAttribute("src", engine.icon);

         var command = '\Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService)\
                       .addEngine( event.originalTarget.getAttribute("uri"), Ci.nsISearchEngine.DATA_XML,\
                       event.originalTarget.getAttribute("src"), true);'
         menuitem.setAttribute("oncommand", command);

         aNode.insertBefore(menuitem, managerSeparator);
         }

};
this.currentEngine = searchService().currentEngine;
var ss = searchService();
this.engine = ss.currentEngine;
this.image = this.engine.iconURI.spec;

var mp = this.appendChild( document.createElement("menupopup") );
mp.setAttribute("onpopupshowing", "parentNode.populateMenu(this)");
mp.setAttribute("oncommand", "event.stopPropagation()");

var managerSeparator = mp.appendChild( document.createElement("menuseparator") );
managerSeparator.id = "cb-searchbutton-separator"

var managerItem1 = mp.appendChild( document.createElement("menuitem") );
managerItem1.setAttribute("label", "Управление поисковыми системам");
managerItem1.setAttribute("oncommand", "openDialog('chrome://browser/content/search/engineManager.xul', " + "'engineManager', 'chrome, dialog=no')");
this.type = "menu-button"

Почему так и как исправыть?

Добавлено 30-09-2013 22:54:58

okkamas_knife пишет

до

Выделить код

Код:

WebScreenShot.capture(win, 0, 0, win.innerWidth + win.scrollMaxX, win.innerHeight + win.scrollMaxY);

после

Выделить код

Код:

WebScreenShot.capture(win, 0, 0, window.content.document.getElementsByTagName('body')[0].scrollWidth, win.innerHeight + win.scrollMaxY);

Это в какой кнопке ?

Отредактировано bunda1 (30-09-2013 22:54:58)

Отсутствует

 

№691901-10-2013 07:09:53

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 689
UA: Firefox 16.0

Re: Custom Buttons

Я так понимаю что не по силам оказалась эта проблема=> пост №7716
Жаль! Напрягает сильно это ограничение. Запарили девелоперы не нужными функциями.

Отсутствует

 

№692001-10-2013 12:39:59

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

Re: Custom Buttons

bunda1 пишет

Почему так

Рискну предположить, что вот

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

Выделить код

Код:

<binding id="menu-button-base"
           extends="chrome://global/content/bindings/button.xml#button-base">
    <implementation implements="nsIDOMEventListener">
      <constructor>
        this.init();
      </constructor>

bunda1 пишет

и как исправыть?

Пока фикс не случился, может быть в кнопке

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

Выделить код

Код:

this.type = "menu-button";
if (!this.hasAttribute("initialized")) this.init = Function();

Отсутствует

 

№692101-10-2013 17:14:50

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 24.0

Re: Custom Buttons

okkamas_knife
А для пункта "Сохранить видимую часть страницы как PNG"?

Отредактировано Kamui (01-10-2013 17:15:00)

Отсутствует

 

№692201-10-2013 19:14:26

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Dumby пишет

Пока фикс не случился, может быть в кнопке

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

Выделить код

Код:

this.type = "menu-button";
if (!this.hasAttribute("initialized")) this.init = Function();

Спасибо за объяснение и код :)
Было бы не плохо если кто бы написал про этот баг сюда mozdev.org - custombuttons: bugs

Добавлено 01-10-2013 19:15:35

Kamui пишет

okkamas_knife
А для пункта "Сохранить видимую часть страницы как PNG"?

Что за пункт, в кнопке Save или где?

Отредактировано bunda1 (01-10-2013 19:15:35)

Отсутствует

 

№692301-10-2013 20:49:39

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

Re: Custom Buttons

bunda1 пишет

Было бы не плохо если кто бы написал про этот баг сюда mozdev.org - custombuttons: bugs

Да-да, было бы не плохо.
И, может быть, заодно про такой вот сущий пустяк - cbu.writeFile

Отсутствует

 

№692401-10-2013 21:27:33

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

bunda1 пишет

Если в кнопке которое открывает меню есть строка this.type = "menu-button" код кнопки инициализируется два раза и все обработчики дублируются.

Если мне память не изменяет, так было всегда. Когда меняется тип кнопки, меняется привязка и срабатывает её конструктор.

Dumby пишет

И, может быть, заодно про такой вот сущий пустяк - cbu.writeFile

Спасибо, исправлю.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№692501-10-2013 22:47:29

Sekotka
Участник
 
Группа: Members
Зарегистрирован: 07-02-2010
Сообщений: 44
UA: Firefox 24.0

Re: Custom Buttons

Подскажите пожалуйста по моему вопросу. Все таки почти готова, осталось пару штрихов!

Отсутствует

 

Board footer

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