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

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№712610-11-2013 17:11:52

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

Re: Custom Buttons

bunda1 пишет

А я думал что ты забил об этом :)

Даже и надейся, что забуду, на данный момент, это моя самая желанная кнопочка.:)

Infocatcher пишет:

    Вот пример:

Еще спасибо, это просто праздник какой-то !

Надеюсь, теперь праздник и ко мне придёт? ;)

Отсутствует

 

№712710-11-2013 17:23:34

Pony_Smile_Pack
Участник
 
Группа: Members
Зарегистрирован: 13-01-2012
Сообщений: 1144
UA: Firefox 25.0

Re: Custom Buttons

villa7 пишет

Ребята, а может кто сделать кнопку "Временно разрешить" вместо стандартной, просто эта блямба у меня убрана из адресной строки, а иногда нужна для включения плагина.
http://s020.radikal.ru/i716/1311/65/0662aec771a3t.jpg

Удобно этот стиль (убирающий блямбу) просто отключать, и всё.

скрытый текст
3947bb0ee71a0e3b2e6b42911d7c92d1.png

Отсутствует

 

№712810-11-2013 17:43:51

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 24.0

Re: Custom Buttons

bunda1
Click to Play per-element у меня стоит, но например на этом сайте
http://www.allmusic.com/album/pelle-gudmundsen-holmgreen-plateaux-pour-piano-et-orchestre-hybrid-sacd-mw0001406175#no-js
пока на Временно разрешить не нажмешь не играет, все плагины стоят Всегда включать

Pony_Smile_Pack
Я не пользуюсь Stylish постоянно, зачем лишнее расширение держать если через userChrome.css всё работает.


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№712912-11-2013 02:11:27

villi311
Участник
 
Группа: Members
Зарегистрирован: 31-08-2013
Сообщений: 39
UA: Firefox 25.0

Re: Custom Buttons

Мастера, очень хотелось бы иметь кнопочку автозаполнения, чтобы в контекстном меню появилась строчка "Мои данные", а в ней выпадающим списком можно было бы внести штук шесть емайл адресов, свой ник, скайп. Помните как было в Опера Формы личных данных, я туда просто вписывал нужную информацию и все прекрасно работало и вставлялось в любое окошко
Я пробовал пару расширений но там все так заумно и так всего много, что очень неудобно.
Примерно вот так http://SSMaker.ru/9a7684ed/
Может быть кто нибудь возьмется сделать? В теме готовых кнопок подобного не нашел.

Отсутствует

 

№713012-11-2013 09:18:56

VORON
Участник
 
Группа: Members
Зарегистрирован: 03-04-2013
Сообщений: 153
UA: Firefox 24.0

Re: Custom Buttons

villi311
Я для этих же целей пользую InFormEnter.По-моему проще уже некуда-записал свои данные,в форме тыкаешь на стрелочку и вставляешь нужное.

Отсутствует

 

№713112-11-2013 09:25:33

villi311
Участник
 
Группа: Members
Зарегистрирован: 31-08-2013
Сообщений: 39
UA: Firefox 25.0

Re: Custom Buttons

VORON пишет

villi311Я для этих же целей пользую InFormEnter.По-моему проще уже некуда-записал свои данные,в форме тыкаешь на стрелочку и вставляешь нужное.

Отлично. То что надо. Огромное спасибо.

Отсутствует

 

№713212-11-2013 13:18:33

>ORG@niZM<
Участник
 
Группа: Members
Зарегистрирован: 20-08-2013
Сообщений: 66
UA: Firefox 17.0

Re: Custom Buttons

доброго! все 319 страниц пока не осилил (сейчас на 229-ой), а поиск готового решения не выдал, поэтому попрошу помощи. Надыбал в теме код для инициализации

Выделить код

Код:

//Если открыта новая пустая вкладка, то загружать страницу в ней
if( ( gBrowser.currentURI.spec == "about:blank" || gBrowser.currentURI.spec == "chrome://fastdial/content/fastdial.html" || gBrowser.currentURI.spec == cbu.getPrefs("browser.newtab.url")
    ) && !gBrowser.selectedBrowser.webProgress.isLoadingDocument
  ) loadURI(pageURL);
  else gBrowser.selectedTab = gBrowser.addTab(pageURL);

Если его подставить к любой кнопке, то кнопка становится как-бы неактивной, хотя сама по себе остаётся кликабельной и рабочей. Получается, что в этом коде ошибка или неправильно применяется, т.е. код не полный и требует использования в определённых условиях?
Я хочу добиться того, чтобы данный код отслеживал именно описанную в комментарии ситуацию - если открыта пустая вкладка (в моём случае это ещё и вкладка с Fast Dial), то страница должна загружаться именно в этой пустой вкладке.
Так сказать, ищем способы получить аналог TU/TMP на кнопках, что почти удалось.

Отредактировано >ORG@niZM< (12-11-2013 13:19:58)

Отсутствует

 

№713312-11-2013 13:48:42

VORON
Участник
 
Группа: Members
Зарегистрирован: 03-04-2013
Сообщений: 153
UA: Firefox 24.0

Re: Custom Buttons

villi311
Если не понравится стандартная кнопка вставки,то можно стилем подправить это дело.
InFormEnter - New icon

Отсутствует

 

№713412-11-2013 14:31:57

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 25.0

Re: Custom Buttons

okkamas_knife пишет

>ORG@niZM<
загляни в сниппеты №9
и посмотри на синтаксис конструкции if
и сравни со своим кодом - сразу увидишь что не так.
..............................................
ага, фигурные скобочки отсутствуют

okkamas_knife, но ведь если код /что делать/ занимает одну строку, то фигурные скобки необязательны? Или не?

А кнопка, в которую добавлен этот код, действительно  "становится как-бы неактивной", если не вставить вместо pageURL желаемый адрес.
Ну и в консоли конечно будет  ReferenceError: pageURL is not defined

Отредактировано rbfyec (12-11-2013 14:38:39)

Отсутствует

 

№713512-11-2013 15:26:50

>ORG@niZM<
Участник
 
Группа: Members
Зарегистрирован: 20-08-2013
Сообщений: 66
UA: Firefox 17.0

Re: Custom Buttons

Выделить код

Код:

//Если открыта новая пустая вкладка, то загружать страницу в ней
if ( ( gBrowser.currentURI.spec == "about:blank" || gBrowser.currentURI.spec == cbu.getPrefs("browser.newtab.url") ) && !gBrowser.selectedBrowser.webProgress.isLoadingDocument ){    
loadURI(pageURL);}
else {
gBrowser.selectedTab = gBrowser.addTab(pageURL);
};

так работает, но кнопка, в которой лежит код, "бледная"
а в консоли только

Выделить код

Код:

Ошибка: ReferenceError: pageURL is not defined
Источник: chrome://custombuttons-context/content/button.js?windowId=Firefox&id=custombuttons-button59@init
Строка: 5

я так понимаю pageURL это не предопределённая переменная, т.е. её значение ещё нужно получить? но тогда почему код работает?

Отредактировано >ORG@niZM< (12-11-2013 15:28:16)

Отсутствует

 

№713612-11-2013 15:42:02

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 25.0

Re: Custom Buttons

okkamas_knife пишет

зачем экспериментировать если можно использовать стандартное написание которое будет точно работать везде и всегда а не при определённых условиях типа записи в одну строчку итд?
мы ж не программеры чтоб выпендриваться с красотами нам нужен простой и понятный работающий код.

Это да, я просто к тому, что у ORG@niZM кнопка становится бледной не из-за фигурных скобок.

>ORG@niZM< пишет

но тогда почему код работает?

Что именно "работает"? Продолжает работать код кнопки до того места, где вставлен этот сниппет.
А сам сниппет не будет работать, если не присвоить переменной pageURL какое-то значение (адрес, который мы хотим открывать).

Отредактировано rbfyec (12-11-2013 16:02:07)

Отсутствует

 

№713712-11-2013 16:06:34

>ORG@niZM<
Участник
 
Группа: Members
Зарегистрирован: 20-08-2013
Сообщений: 66
UA: Firefox 17.0

Re: Custom Buttons

rbfyec
работает так: открываем новый таб, вводим адрес в адресной строке, энтер - грузит именно в этом табе. Без этого кода - открывает в новом.

Кстати, код вставляю в одну из кнопок, в которой инициализация пустая.

Добавлено 12-11-2013 16:21:42
вообще не хотел разводить кипиш, пока тему не дочитаю, но раз уж начал, то тут мой "тихий ужас" (форум не может даже пост с таким кодом принять). Кнопка создана для вывода названия текущей страницы на панель, где располагаются другие кнопки, а так же для сосредоточения полезного кода-инициализации.

Отредактировано >ORG@niZM< (12-11-2013 16:23:44)

Отсутствует

 

№713812-11-2013 18:20:48

>ORG@niZM<
Участник
 
Группа: Members
Зарегистрирован: 20-08-2013
Сообщений: 66
UA: Firefox 17.0

Re: Custom Buttons

okkamas_knife
В общем, чего я хотел добиться: если открыта пустая вкладка, то вводимый в адресную строку адрес открывает страницу в текущей вкладке. Взял

Выделить код

Код:

// Bookmarks/History/Homepage/URL/Search открывать в новой вкладке ......................................
eval("whereToOpenLink = " + whereToOpenLink.toString()
  .replace(/return "current";/g, "{"+(function() {
    var node = e && e.originalTarget;
    while (node) {
      switch (node.id) {
        case "bookmarksMenuPopup":
        case "goPopup":
        case "appmenu_bookmarksPopup":
        case "appmenu_historyMenupopup":
        case "personal-bookmarks":
        case "bookmarks-menu-button":
        case "historymenu_history":
        case "home-button":
        case "page-proxy-stack":
        case "go-button":
        case "urlbar-go-button":
        case "PopupAutoCompleteRichResult":
        case "searchbar":
        case "PopupAutoComplete":
          return "tab";
      }
      node = node.parentNode;
    }
    return "current";
  }).toString().replace(/^.*{|}$/g, "")+"}")
);

//Bookmarklet 
eval("openLinkIn = " + openLinkIn.toString()
  .replace(/(?=if \(where == "save"\))/, 'if (url.substr(0, 11) == "javascript:") where = "current";')
  .replace(/(?=var loadInBackground)/, 'if (w.gBrowser.currentURI.spec == "about:blank" && !w.gBrowser.mCurrentTab.hasAttribute("busy")) where = "current";')
);

//
document.getElementById("sidebar-box").addEventListener("load", function(event) {
  var document = event.target;
  if (document.location == "chrome://browser/content/bookmarks/bookmarksPanel.xul"
      || document.location == "chrome://browser/content/history/history-panel.xul") {
    eval("document.defaultView.whereToOpenLink = " + document.defaultView.whereToOpenLink.toString()
      .replace(/return "current";/g, 'return "tab";')
    );
    eval("document.defaultView.openLinkIn = " + document.defaultView.openLinkIn.toString()
      .replace(/(?=if \(where == "save"\))/, 'if (url.substr(0, 11) == "javascript:") where = "current";')
      .replace(/(?=var loadInBackground)/, 'if (w.gBrowser.currentURI.spec == "about:blank" && !w.gBrowser.mCurrentTab.hasAttribute("busy")) where = "current";')
    );
  }
}, true);

//
eval("gURLBar.handleCommand = " + gURLBar.handleCommand.toString()
  .replace(/aTriggeringEvent\s*&&\s*aTriggeringEvent.altKey/, "!($&)")
  .replace("aTriggeringEvent.preventDefault();", "")
  .replace("aTriggeringEvent.stopPropagation();", "")
);

и заменил

Выделить код

Код:

w.gBrowser.currentURI.spec == "about:blank"

на

Выделить код

Код:

(w.gBrowser.currentURI.spec == "about:blank" || w.gBrowser.currentURI.spec == "chrome://fastdial/content/fastdial.html")

.

Не пашет. Менял и все вхождения, и по одиночке.

Отредактировано >ORG@niZM< (12-11-2013 19:51:04)

Отсутствует

 

№713913-11-2013 00:57:20

villi311
Участник
 
Группа: Members
Зарегистрирован: 31-08-2013
Сообщений: 39
UA: Firefox 25.0

Re: Custom Buttons

а сделав самостоятельно свою первую кнопку вы осознаете возможности свои и СВ и возможно вам захочется ещё вкусных плюшек с отсутствием которых вы долгое время мирились.

Вы абсолютно правы, но я про кнопки то узнал всего несколько дней назад, так что пока это не мой уровень, хотя я обязательно буду пробовать, так как все это довольно интересно и очень расширяет функционал.
Пока пробую просто немного переделывать их под себя.

зы кстати а чем не устроила эта кнопка?№180

Не сработала смекалка. Действительно эта кнопка практически то что мне нужно, вот только без контекстного меню. Буду пробовать вышеописанное вами.
Подскажите, а вот сниппеты эти где брать?

Отсутствует

 

№714013-11-2013 02:59:50

villi311
Участник
 
Группа: Members
Зарегистрирован: 31-08-2013
Сообщений: 39
UA: Firefox 25.0

Re: Custom Buttons

okkamas_knife пишет

villi311 пишет: Подскажите, а вот сниппеты эти где брать?заглавный пост в готовых кнопках самый низ там кучка ссылок

Спасибо.Нашел.

Отсутствует

 

№714113-11-2013 22:17:39

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

Re: Custom Buttons

>ORG@niZM< пишет

заменил

Выделить код

Код:

w.gBrowser.currentURI.spec == "about:blank"

на

Выделить код

Код:

(w.gBrowser.currentURI.spec == "about:blank" || w.gBrowser.currentURI.spec == "chrome://fastdial/content/fastdial.html")

.

Не пашет. Менял и все вхождения, и по одиночке.

Не там менял я думаю надо менять что то в gURLBar.handleCommand. Посмотри тут userChrome.js/opennewtab/OpenNewTab.uc.js at master · ardiman/userChrome.js · GitHub

Отсутствует

 

№714215-11-2013 14:23:30

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Firefox 25.0

Re: Custom Buttons

Не могу понять... Почему не работает простейшая вещь. На этой странице:

Выделить код

Код:

H2 = document.getElementsByTagName('h2')[4];
H2.style.border = "2px red solid"; // Просто чтоб его видно было

H2.onclick=function(event) {
    if (event.button==2) {
      alert(event.button)
  }
}

Если написать  if (event.button==0) то работает.
Или если совсем выбросить условие - тогда по умолчанию event.button будет тоже ЛКМ - тоже работает.

Почему не работает ни event.button==2, ни event.button==1?

Отредактировано toxa (15-11-2013 14:26:57)

Отсутствует

 

№714315-11-2013 16:59:38

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

Re: Custom Buttons

toxa

Используйте onmousedown/mouseup

http://learn.javascript.ru/mouse-clicks
___________
И перезаписывать обработчик на странице следует только при явной необходимости.

Отредактировано Lex1 (15-11-2013 17:03:36)

Отсутствует

 

№714415-11-2013 19:05:53

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Firefox 25.0

Re: Custom Buttons

Lex1 пишет

toxa

Используйте onmousedown/mouseup

http://learn.javascript.ru/mouse-clicks

Но почему не срабатывает onclick??
В каких случаях он перестаёт работать и надо использовать другое событие?


Lex1 пишет

И перезаписывать обработчик на странице следует только при явной необходимости.

Что значит ПЕРЕзаписывать? На этой странице обработчика на Н2 никакого не было, это я прицепил чисто для иллюстрации.

Отсутствует

 

№714515-11-2013 19:54:23

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

Re: Custom Buttons

toxa
На этой странице:

Выделить код

Код:

alert( document.getElementsByTagName('h2')[4] ); // = undefined
alert( content.document.getElementsByTagName('h2')[4] ); // = [object XPCNativeWrapper [object HTMLHeadingElement]]

Добавлено 15-11-2013 20:08:48

Выделить код

Код:

H2.addEventListener("mousedown", function(e) {
   e.preventDefault();
   e.stopPropagation();
   alert( e.button ); 
}, true );

Добавлено 15-11-2013 20:11:13
Наверно на странице по умолчанию при клике правой кнопкой мыши браузер показывает свое контекстное меню.

Отредактировано bunda1 (15-11-2013 20:11:13)

Отсутствует

 

№714615-11-2013 20:35:20

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

Re: Custom Buttons

toxa
onclick гарантированно работает только для лкм. Для пкм обычно используют oncontextmenu или mousedown.

На этой странице обработчика на Н2 никакого не было

Каждый раз проверять это несколько непрактично :)

Отсутствует

 

№714715-11-2013 21:23:10

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Firefox 25.0

Re: Custom Buttons

СПАСИБО! :)


=========================

bunda1 пишет

toxa
На этой странице:

Выделить код

Код:

alert( document.getElementsByTagName('h2')[4] ); // = undefined
alert( content.document.getElementsByTagName('h2')[4] ); // = [object XPCNativeWrapper [object HTMLHeadingElement]]

У меня в обоих случаях на алерте [object HTMLHeadingElement]

Отсутствует

 

№714815-11-2013 21:29:35

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

Re: Custom Buttons

toxa пишет

У меня в обоих случаях на алерте [object HTMLHeadingElement]

Мистика однако :/

Отсутствует

 

№714916-11-2013 19:41:20

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 25.0

Re: Custom Buttons

Я использую этот кусочек кода чтобы все открывалось в новых вкладках.

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

Выделить код

Код:

// Bookmarks/History/Homepage/URL/Search открывать в новой вкладке ......................................
eval("whereToOpenLink = " + whereToOpenLink.toString()
  .replace(/return "current";/g, "{"+(function() {
    var node = e && e.originalTarget;
    while (node) {
      switch (node.id) {
        case "bookmarksMenuPopup":
        case "goPopup":
        case "appmenu_bookmarksPopup":
        case "appmenu_historyMenupopup":
        case "personal-bookmarks":
        case "bookmarks-menu-button":
        case "historymenu_history":
        case "home-button":
        case "page-proxy-stack":
        case "go-button":
        case "urlbar-go-button":
        case "PopupAutoCompleteRichResult":
        case "searchbar":
        case "PopupAutoComplete":
        case "chrome://browser/content/places/places.xul":
          return "tab";
      }
      node = node.parentNode;
    }
    return "current";
  }).toString().replace(/^.*{|}$/g, "")+"}")
);

//Bookmarklet
eval("openLinkIn = " + openLinkIn.toString()
  .replace(/(?=if \(where == "save"\))/, 'if (url.substr(0, 11) == "javascript:") where = "current";')
  .replace(/(?=var loadInBackground)/, 'if (w.gBrowser.currentURI.spec == "about:blank" && !w.gBrowser.mCurrentTab.hasAttribute("busy")) where = "current";')
);

//
document.getElementById("sidebar-box").addEventListener("load", function(event) {
  var document = event.target;
  if (document.location == "chrome://browser/content/bookmarks/bookmarksPanel.xul"
      || document.location == "chrome://browser/content/history/history-panel.xul") {
    eval("document.defaultView.whereToOpenLink = " + document.defaultView.whereToOpenLink.toString()
      .replace(/return "current";/g, 'return "tab";')
    );
    eval("document.defaultView.openLinkIn = " + document.defaultView.openLinkIn.toString()
      .replace(/(?=if \(where == "save"\))/, 'if (url.substr(0, 11) == "javascript:") where = "current";')
      .replace(/(?=var loadInBackground)/, 'if (w.gBrowser.currentURI.spec == "about:blank" && !w.gBrowser.mCurrentTab.hasAttribute("busy")) where = "current";')
    );
  }
}, true);

//
eval("gURLBar.handleCommand = " + gURLBar.handleCommand.toString()
  .replace(/aTriggeringEvent\s*&&\s*aTriggeringEvent.altKey/, "!($&)")
  .replace("aTriggeringEvent.preventDefault();", "")
  .replace("aTriggeringEvent.stopPropagation();", "")
);


Очень удобно, но есть 2 минуса.

1. Ссылки из библиотеки - закладки и журнал - открываются в текущей вкладке. Как бы в этот код что-то добавить, чтоб это обойти?


2. Иногда бывает, после интенсивного серфинга начинает косячить: в основном всё продолжает открываться в новых табах, но если написать адрес и нажать Энтер (именно клавишу), адрес открывается в текущем.  А если кликнуть стрелку "Go" в адресной строке - то в новом табе.
Кто с этим сталкивался?

Отсутствует

 

№715016-11-2013 19:57:55

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

Re: Custom Buttons

Может тут поищи ardiman/userChrome.js · GitHub

Отсутствует

 

Board footer

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