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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Автоматически очистить панель поиска после запуска поиска.

№116-01-2012 21:42:57

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

[CB]Автоматически очистить панель поиска после запуска поиска.

Автоматически очистить панель поиска после запуска поиска( Firefox17+ )
Автор: bunda1
Версия: от 08.09.2014.
Описание: Kод очищает поисковую строку Firefox после подачи поиска.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую Custom Buttons кнопку, можно использовать уже существующую.

Выделить код

Код:

// Автоматически очистить панель поиска после запуска поиска, от 08.09.2014. ..............
var src = "BrowserSearch.searchBar.handleSearchCommand = " + BrowserSearch.searchBar.handleSearchCommand.toString(),
     res = src.replace("{", '{\nsetTimeout(function(t) t._textbox.value = "", 50, this)');
eval(res);
addDestructor(function() eval(src) );

Отредактировано bunda1 (08-09-2014 22:48:37)

Отсутствует

 

№210-11-2013 18:26:08

Northtech
Участник
 
Группа: Members
Зарегистрирован: 16-04-2011
Сообщений: 259
UA: Firefox 26.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

Что-то в firefox 26 кнопка перестала работать.

Отсутствует

 

№310-11-2013 19:12:37

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

Northtech пишет

Что-то в firefox 26 кнопка перестала работать.

Попробуй теперь.

Отсутствует

 

№411-11-2013 16:50:05

Northtech
Участник
 
Группа: Members
Зарегистрирован: 16-04-2011
Сообщений: 259
UA: Firefox 26.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

Теперь всё нормально, спасибо.

Отсутствует

 

№519-12-2013 21:00:47

fish08
Участник
 
Группа: Members
Зарегистрирован: 28-02-2012
Сообщений: 21
UA: Firefox 26.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

А можно что бы происходил сброс на поисковую систему по умолчанию после подачи поиска?

Отсутствует

 

№619-12-2013 23:16:26

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

fish08 пишет

А можно что бы происходил сброс на поисковую систему по умолчанию после подачи поиска?

Выделить код

Код:

// Автоматически очистить панель поиска после запуска поиска + возврат нужного поисковика, от 19.12.2013. ..............
(function() {
   var func = BrowserSearch.searchBar.handleSearchCommand.toString()
                   .replace(/^\s*function.+{/, '').replace(/}\s*$/, '');    
      
   var code = ['setTimeout(function() { textBox.value = ""; }, 500);\
               \n var searchService = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);\
               \n searchService.currentEngine = searchService.getEngineByName("Яндекс");\
                '].join('');

   func += code;
   BrowserSearch.searchBar.handleSearchCommand = new Function('aEvent', func );
})();

Отредактировано bunda1 (19-12-2013 23:17:30)

Отсутствует

 

№720-12-2013 00:29:10

fish08
Участник
 
Группа: Members
Зарегистрирован: 28-02-2012
Сообщений: 21
UA: Firefox 26.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

bunda1 пишет
fish08 пишет

А можно что бы происходил сброс на поисковую систему по умолчанию после подачи поиска?

Выделить код

Код:

// Автоматически очистить панель поиска после запуска поиска + возврат нужного поисковика, от 19.12.2013. ..............
(function() {
   var func = BrowserSearch.searchBar.handleSearchCommand.toString()
                   .replace(/^\s*function.+{/, '').replace(/}\s*$/, '');    
      
   var code = ['setTimeout(function() { textBox.value = ""; }, 500);\
               \n var searchService = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);\
               \n searchService.currentEngine = searchService.getEngineByName("Яндекс");\
                '].join('');

   func += code;
   BrowserSearch.searchBar.handleSearchCommand = new Function('aEvent', func );
})();

Спасибо

Отсутствует

 

№816-09-2014 20:21:29

Mishania
Участник
 
Группа: Members
Зарегистрирован: 22-10-2011
Сообщений: 356
UA: Firefox 32.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

А к новой редакции функцию возврата поисковика прикрутите пожалуйста.

Отсутствует

 

№916-09-2014 21:23:39

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

Mishania пишет

А к новой редакции функцию возврата поисковика прикрутите пожалуйста.

Выделить код

Код:

var src = "BrowserSearch.searchBar.handleSearchCommand = " + BrowserSearch.searchBar.handleSearchCommand.toString(),
    res = src.replace("{", '{\nsetTimeout(function(t) { t._textbox.value = ""; Services.search.currentEngine = Services.search.getEngineByName("Яндекс") }, 50, this);');
eval(res);
addDestructor(function() eval(src) );

Отсутствует

 

№1016-09-2014 22:13:08

Mishania
Участник
 
Группа: Members
Зарегистрирован: 22-10-2011
Сообщений: 356
UA: Firefox 32.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

Спасибо.

Отсутствует

 

№1119-09-2014 03:03:42

Maxut
Участник
 
Группа: Members
Зарегистрирован: 27-02-2011
Сообщений: 31
UA: Firefox 28.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

bunda1
Можешь написать код"очистить панель поиска нажатием скм по иконке поисковика" ?

Отсутствует

 

№1219-09-2014 12:55:04

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

Maxut

Выделить код

Код:

// Очистить панель поиска нажатием скм по иконке поисковика, от 19.09.2014. ..............
(function () { 
   var searchbar = document.getElementById("searchbar");
   if ( !searchbar ) return;
 
   var engineButton = document.getAnonymousElementByAttribute( searchbar, "anonid", "searchbar-engine-button");
   addEventListener('click', function(e) {   
      if ( e.button == 1 ) searchbar.textbox.value = '';
   }, false, engineButton );   
})();

Но мне кажется очистить панель поиска прокруткой колёсиком мыши на панели поиска будет лучше:

Выделить код

Код:

// Очистить панель поиска прокруткой колёсиком мыши на панели поиска, от 19.09.2014. ..............
(function () { 
   var searchbar = document.getElementById("searchbar");
   if ( !searchbar ) return;
 
   addEventListener('DOMMouseScroll', function(){
      searchbar.textbox.value = '';
   }, false, searchbar ); 
})();

Отсутствует

 

№1319-09-2014 23:58:07

Maxut
Участник
 
Группа: Members
Зарегистрирован: 27-02-2011
Сообщений: 31
UA: Firefox 28.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

bunda1
Да,второй вариант удобнее. Спасибо

Отсутствует

 

№1421-10-2014 13:00:17

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

bunda1 пишет

Но мне кажется очистить панель поиска прокруткой колёсиком мыши на панели поиска будет лучше:

А можно  вариант, чтобы очищала и возвращала поисковик, но не колёсиком, а например ЛКМ+ПКМ, как в кнопке Toggle Find+, или любым другим сочетанием?

Отредактировано voqabuhe (21-10-2014 13:01:05)

Отсутствует

 

№1521-10-2014 15:18:19

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

voqabuhe пишет

А можно  вариант, чтобы очищала и возвращала поисковик, но не колёсиком, а например ЛКМ+ПКМ, как в кнопке Toggle Find+, или любым другим сочетанием?

Выделить код

Код:

// ЛКМ + ПКМ на панели поиска очищают его, от 21.10.2014. ................................ 
function clearSearchbar(e) { 
   if ( e.type == "mousedown" ) {
        if ( e.button == 0 ) this.leftButtonDown = true;
        if ( e.button == 2 && this.leftButtonDown ) {
             this.leftButtonDown = false;
             setTimeout(function() e.target.textbox.value = '', 0); 
             }
         return;
       }
           
    if ( e.button == 0 ) this.leftButtonDown = false;    
    
    if ( e.button == 2 && this.leftButtonDown )
         e.preventDefault();
};
["mousedown", "click"]
.forEach(function(type) addEventListener( type, clearSearchbar, false, document.getElementById("searchbar") ));

Отсутствует

 

№1621-10-2014 15:44:47

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

bunda1
В [nightly] не срабатывает, открывает обычное контекстное меню.

Отсутствует

 

№1721-10-2014 16:36:17

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

voqabuhe
Если имеется в виду клик ПКМ при зажатой ЛКМ

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

Выделить код

Код:

(searchbar => {
    var flag, engine = Services.search.getEngineByName("Яндекс");
    var btn = document.getAnonymousElementByAttribute(searchbar, "anonid", "search-go-button");
    addEventListener("click", e => {
        if (e.button == 2) {
            if (e.buttons != 1) return;
            e.preventDefault();
            flag = true;
            searchbar.value = "";
            if (Services.search.currentEngine != engine)
                Services.search.currentEngine = engine;
        } else if (flag && e.originalTarget == btn) {
            e.stopPropagation();
            e.preventDefault();
            flag = false;
        }
    }, true, searchbar);
    addEventListener("mouseleave", () => flag = false, false, btn);
})(document.getElementById("searchbar"));

Отредактировано Dumby (21-10-2014 19:41:06)

Отсутствует

 

№1821-10-2014 22:20:29

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

Dumby пишет

Если имеется в виду клик ПКМ при зажатой ЛКМ

Да, именно это и имелось ввиду, и прекрасно работает. Спасибо.  Есть только одно маленькое но. Если поместить на панель главного меню, что эту кнопку, что "Очистить панель поиска прокруткой колёсиком мыши на панели поиска, от 19.09.2014.", они там работают только до первой перезагрузки [nightly]. А после их можно оживить только редактированием. Можно это поправить, а то у меня на панели меню спрятаны все кнопки, которые не требуют нажатия?

Отредактировано voqabuhe (21-10-2014 22:21:01)

Отсутствует

 

№1921-10-2014 22:47:59

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

voqabuhe пишет

на панели меню спрятаны все кнопки, которые не требуют нажатия

Да-да, на панели меню (#toolbar-menubar) им самое место.
Сейчас поместил кнопку на этот тулбар, сделал рестарт, и ... — код работает :(.
Правда Nightly несвежая, но всё-таки 36.0a1.

Отсутствует

 

№2021-10-2014 23:09:05

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

Dumby пишет

Сейчас поместил кнопку на этот тулбар, сделал рестарт, и ... — код работает :(.

Значит у меня им что-то мешает, хотя остальные, кроме этих двух, там работают. Ну что ж, пусть тогда пока остаются в #PanelUI-button, где они себя прекрасно чувствуют.:)

Отсутствует

 

№2120-02-2017 23:31:14

Raf-9600
Участник
 
Группа: Members
Зарегистрирован: 15-05-2007
Сообщений: 560
UA: Firefox 51.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

А таймер к тому коду, что в шапке, прикрутить возможно? Допустим, чтобы стирание происходило спустя минуту.


Иногда мне кажется, что лучшие программисты мира и лучшие технические умы работают только над одним - как сделать так, чтоб на новом скоростном железе тормозило также, как на хламе 10 летней давности.
(с)

Отсутствует

 

№2208-04-2017 18:14:04

Alex_one
Участник
 
Группа: Members
Зарегистрирован: 27-09-2015
Сообщений: 135
UA: Firefox 52.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

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

4c97c6d820fe.png 52.0.2

gif (123 яндекс по умолчанию / 12345 google)
2d42b08b7351.gif

Отсутствует

 

№2309-04-2017 18:01:43

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1419
UA: Firefox 52.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

Присоединяюсь к просьбе Alex_one.

Отсутствует

 

№2409-04-2017 20:37:41

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

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

gif'ка, конечно, хороша. Но объясняет задачу не полностью.
Вот, например, допустим так. Если работает, то сойдёт ли?

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

Выделить код

Код:

((bar, key) => {
    if (!bar) return;
    var value = bar[key], box = bar.textbox, set = (o, k = "value", v = "") => o[k] = v;
    var hasListener, clear = () => setTimeout(() => set(box), 50, hasListener = box.popup.removeEventListener("popuphidden", clear, false));
    Object.defineProperty(bar, key, {
        configurable: true, enumerable: true, get: () => value, set(val) {
            val === null && !hasListener && setTimeout(() => {
                if (box.popup.state != "open") set(box);
                else hasListener = !box.popup.addEventListener("popuphidden", clear, false);
            }, 50);
            return value = val;
        }
    });
    addDestructor(() => delete bar[key] && set(bar, key, value));
})(BrowserSearch.searchBar, "telemetrySearchDetails");

Отредактировано Dumby (09-04-2017 23:08:27)

Отсутствует

 

№2510-04-2017 01:20:16

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1419
UA: Firefox 45.0

Re: [CB]Автоматически очистить панель поиска после запуска поиска.

Dumby
Да, очищает при выборе поисковика, но...
Открывает в текущей вкладке при клике по стрелке, а должна в новой (активной), так же как при выборе поиска или по Еnter.
Можно еще прикрутить очистку строки поиска при клике ПКМ по стрелке (сейчас вызов меню панелей)?

Отредактировано _zt (10-04-2017 01:23:23)

Отсутствует

 
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Автоматически очистить панель поиска после запуска поиска.

Board footer

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