Location Bar+ (Firefox 3.6 - 7.1)
Автор:bunda1
Описание: Kод дает возможность поиска в текущем поисковике выделенново текста на странице или текста из буфера обмена, двойным левым кликом на адресной строке.
Kод дает возможность открыть адрес(ссылку)из буфера обмена или адрес типа custombutton://%3C%3Fxm..... из Готовые кнопки для Custom Buttons | Форум Mozilla Россия, двойным левым кликом на адресной строке.
Kод откривает поиск или адрес в новой активной вкладке, если страница пустая в текущей вкладке.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Выделить код

Код:

// удаление обработчиков для адресной строки, при открытии настройки панелей
this.onDestroy = function() {
document.getElementById("urlbar").removeEventListener("dblclick", mclick, false);
document.getElementById("urlbar").removeEventListener("mousedown", function(e){if(!gURLBar.focused) goDoCommand("cmd_copy");}, false)
};

// добавляем обработчики для адресной строки........ 
document.getElementById("urlbar").addEventListener("dblclick", mclick, false);
//копировать выделенный текст на странице
document.getElementById("urlbar").addEventListener("mousedown", function(e){if(!gURLBar.focused) goDoCommand("cmd_copy");}, false);

//функция которую запускает обработчики.............
function mclick(event){

if (event.button==0){
        //отключать реакцию по умолчанию на двойной левый клик
            event.preventDefault();
            event.stopPropagation();

//Вставить в адресную строку из буфера обмена
var clipboard = Components.classes["@mozilla.org/widget/clipboardhelper;1"].  getService(Components.interfaces.nsIClipboardHelper);
gURLBar.value = readFromClipboard();

//функция - открыть адрес
function msearch(event){
if (gBrowser.currentURI.spec != 'about:blank')
{
var tab = getBrowser().addTab(gURLBar.value, null, null);
getBrowser().selectedTab = tab;
}
else
{gBrowser.loadURI(gURLBar.value)}
}

//фылтр           
var strokaadresa= gURLBar.value;
var nsa=strokaadresa.substring(0,5);
if (nsa=="file:"){msearch(event);}
else
if (nsa=="http:"){msearch(event);}
else
if (nsa=="ftp:/"){msearch(event);}
else
//адрес типа "custombutton://%3C%3Fxm....."
var CBstrokaadresa= gURLBar.value;
var CBnsa=CBstrokaadresa.substring(0,15);
if (CBnsa=="custombutton://"){msearch(event);}
else
{
//поиск в текущем поисковике
var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
var submission = ss.currentEngine.getSubmission(readFromClipboard(), null);

//если это пустая вкладка или ......
var enabled = [
    "chrome://browser/content/bookmarks/bookmarksPanel.xul",
    "about:blank",
  ];
if (enabled.indexOf(content.location.href) != -1)
{
//открыть результаты поиска в текущей вкладке
loadURI(submission.uri.spec, null, submission.postData, false);
}
//если это обычная вкладка.
else
{
//открыть результаты поиска в новой вкладке
gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, false, false);
}
 }
  }
   };

Наведением курсора заменить текст адресной строки на текст из из буфера.

Выделить код

Код:

//наведением курсора заменить текст адресной строки на текст из из буфера
document.getElementById("urlbar").addEventListener("mouseover",
    function(e) {gURLBar.value = readFromClipboard(); }, false);

Наведением курсора выделить текст адресной строки.

Выделить код

Код:

//наведением курсора выделить текст адресной строки
document.getElementById("urlbar").addEventListener("mouseover",
    function(e) { e.target.select(); }, false);

bunda1
по поводу механизма перехода/поиска в Location Bar+ (Firefox 3.6 - 7.1):
может лучше будет вставлять текст из буфера в строку адреса, а затем эмулировать нажатие ENTER.
А FF сам разберется перейти по адресу (если в буфере была ссылка) или искать в текущем поисковике (если был текст).

Inko7 пишет

по поводу механизма перехода/поиска в Location Bar+ (Firefox 3.6 - 7.1):
может лучше будет вставлять текст из буфера в строку адреса, а затем эмулировать нажатие ENTER.
А FF сам разберется перейти по адресу (если в буфере была ссылка) или искать в текущем поисковике (если был текст).

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

Выделить код

Код:

// удаление обработчика для адресной строки, при открытии настройки панелей
this.onDestroy = function() {document.getElementById("urlbar").removeEventListener("dblclick", mclick, false);};
 
// добавляем обработчик для адресной строки 
document.getElementById("urlbar").addEventListener("dblclick", mclick, false);

//функция которую запускает обработчик
function mclick(event){

if (event.button==0){
        //отключать реакцию по умолчанию на левую кнопку мыши
            event.preventDefault();
            event.stopPropagation();
//Вставить в адресную строку
var clipboard = Components.classes["@mozilla.org/widget/clipboardhelper;1"].  getService(Components.interfaces.nsIClipboardHelper);
var text = content.getSelection().toString();
if(text){gURLBar.value = text;}
else
{
gURLBar.value = readFromClipboard();
}
//поиск/перейти
gURLBar.handleCommand(event);
}
              };
bunda1 пишет

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

Да, увидел разницу. Но думаю это не так важно.
Единственное замечание: можно ли сделать, чтобы открытие ссылки или результатов поиска происходило в новой активной вкладке, если текущая не пустая?

оффтоп
измени пожалуйста и этот твой код на эмуляцию нажатия ENTER и открытие в новой активной вкладке.
И добавь условие про выделенный текст на странице, как это сделано в коде с адресной строкой.

Выделить код

Код:

// КОД ДЛЯ СТРОКИ ПОИСКА

// удаление обработчика для строки поиска, при открытии настройки панелей
this.onDestroy = function() {searchbox.removeEventListener("dblclick", msclick, false);};

// добавляем обработчик для строки поиска..........
var searchbar = document.getElementById("searchbar");
var searchbox = document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-textbox");
searchbox.addEventListener("dblclick", msclick, false);

//функция которую запускает обработчик
function msclick(event){
if (event.button==0){
        //отключать реакцию по умолчанию на левую кнопку мыши
        event.preventDefault();
        event.stopPropagation();
    //поиск
    msSearch(event);
                }           
};

//функция - поиск
function msSearch(event){
var clipboard = Components.classes["@mozilla.org/widget/clipboardhelper;1"].  getService(Components.interfaces.nsIClipboardHelper);
var str = readFromClipboard();
var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
var submission = ss.currentEngine.getSubmission(str, null);
getBrowser (). selectedTab = getBrowser (). addTab(submission.uri.spec, null, null, submission.postData, true, false);
};

Inko7 пишет

можно ли сделать, чтобы открытие ссылки или результатов поиска происходило в новой активной вкладке, если текущая не пустая?
КОД ДЛЯ СТРОКИ ПОИСКА измени пожалуйста и этот твой код на эмуляцию нажатия ENTER и открытие в новой активной вкладке.
И добавь условие про выделенный текст на странице, как это сделано в коде с адресной строкой.

Выделить код

Код:

// удаление обработчиков для строки поиска, при открытии настройки панелей
this.onDestroy = function() {
searchbox.removeEventListener("dblclick", mclick, false);
searchbox.removeEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);
};

// удаление обработчиков для адресной строки, при открытии настройки панелей
this.onDestroy = function() {
document.getElementById("urlbar").removeEventListener("dblclick", mclick, false);
document.getElementById("urlbar").removeEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false)
};

// добавляем обработчики для строки поиска..........
var searchbar = document.getElementById("searchbar");
var searchbox = document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-textbox");
searchbox.addEventListener("dblclick", mclick, false);
//наведением курсора на строку поиска копировать выделенный текст 
searchbox.addEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);

// добавляем обработчики для адресной строки........ 
document.getElementById("urlbar").addEventListener("dblclick", mclick, false);
//наведением курсора на адресную строку копировать выделенный текст 
document.getElementById("urlbar").addEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);

//функция которую запускает обработчики.............
function mclick(event){

if (event.button==0){
        //отключать реакцию по умолчанию на левую кнопку мыши
            event.preventDefault();
            event.stopPropagation();

//если это не пустая вкладка или вкладка которая не загрузилась
if (gBrowser.currentURI.spec != 'about:blank' || gBrowser.webProgress.isLoadingDocument)
{
//открыть пустую вкладку
newTab = window.getBrowser().addTab();
window.getBrowser().selectedTab = newTab;
}
//Вставить-перейти для адресной строки
gURLBar.select(); goDoCommand('cmd_paste'); gURLBar.handleCommand();
}
  };

У этого кода есть недостатки:
копирует любой выделенный текст наведением курсора на строку поиска или на адресную строку,
воспринимает текст типа document.get как адрес.

Inko7
Или попробуй этот код:

Выделить код

Код:

// удаление обработчиков для строки поиска, при открытии настройки панелей
this.onDestroy = function() {
searchbox.removeEventListener("dblclick", mclick, false);
searchbox.removeEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);
};

// удаление обработчиков для адресной строки, при открытии настройки панелей
this.onDestroy = function() {
document.getElementById("urlbar").removeEventListener("dblclick", mclick, false);
document.getElementById("urlbar").removeEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false)
};

// добавляем обработчики для строки поиска..........
var searchbar = document.getElementById("searchbar");
var searchbox = document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-textbox");
searchbox.addEventListener("dblclick", mclick, false);
//наведением курсора на строку поиска копировать выделенный текст 
searchbox.addEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);

// добавляем обработчики для адресной строки........ 
document.getElementById("urlbar").addEventListener("dblclick", mclick, false);
//наведением курсора на адресную строку копировать выделенный текст 
document.getElementById("urlbar").addEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);

//функция которую запускает обработчики.............
function mclick(event){

if (event.button==0){
        //отключать реакцию по умолчанию на левую кнопку мыши
            event.preventDefault();
            event.stopPropagation();

//если это не пустая вкладка или вкладка которая не загрузилась
if (gBrowser.currentURI.spec != 'about:blank' || gBrowser.webProgress.isLoadingDocument)
{
//открыть пустую вкладку
newTab = window.getBrowser().addTab();
window.getBrowser().selectedTab = newTab;
}
//Вставить
var clipboard = Components.classes["@mozilla.org/widget/clipboardhelper;1"].  getService(Components.interfaces.nsIClipboardHelper);
gURLBar.value = readFromClipboard();

//функция-перейти
function msearch(event){gBrowser.loadURI(readFromClipboard());}

//фылтр           
var strokaadresa= gURLBar.value;
var nsa=strokaadresa.substring(0,5);
if (nsa=="file:"){msearch(event);}
else
if (nsa=="http:"){msearch(event);}
else
if (nsa=="ftp:/"){msearch(event);}
else
{
//поиск
BrowserSearch.loadSearch(readFromClipboard(), false);
}
 }
  };

У этого кода есть недостатки - копирует любой выделенный текст наведением курсора на строку поиска или на адресную строку.

bunda1 пишет

Или попробуй этот код

Да, этот код вроде бы нормальный. Но стабильно работает только для строки адреса! А вот в строку поиска не всегда вставляется содержимое буфера. Если текущая страница пустая, то вставляет практически всегда. Но если страница не пустая (или грузится), то вставляет очень редко. В итоге открывается сайт поисковика, но без результатов...

bunda1 пишет

У этого кода есть недостатки - копирует любой выделенный текст наведением курсора на строку поиска или на адресную строку.

избавился от этого удалением нужных строк кода :)

Inko7 пишет

избавился от этого удалением нужных строк кода

но тогда выделенный текст не будет искать

Inko7 пишет

Но если страница не пустая (или грузится), то вставляет очень редко. В итоге открывается сайт поисковика, но без результатов...

:( странно, у меня такой проблемы нет, может виновато какое нибудь раширенние или конфликт с другим CB кодом,

попробуй этот код:

Выделить код

Код:

// удаление обработчиков для строки поиска, при открытии настройки панелей
this.onDestroy = function() {
searchbox.removeEventListener("dblclick", mclick, false);
searchbox.removeEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);
};

// удаление обработчиков для адресной строки, при открытии настройки панелей
this.onDestroy = function() {
document.getElementById("urlbar").removeEventListener("dblclick", mclick, false);
document.getElementById("urlbar").removeEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false)
};

// добавляем обработчики для строки поиска..........
var searchbar = document.getElementById("searchbar");
var searchbox = document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-textbox");
searchbox.addEventListener("dblclick", mclick, false);
//наведением курсора на строку поиска копировать выделенный текст 
searchbox.addEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);

// добавляем обработчики для адресной строки........ 
document.getElementById("urlbar").addEventListener("dblclick", mclick, false);
//наведением курсора на адресную строку копировать выделенный текст 
document.getElementById("urlbar").addEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);

//функция которую запускает обработчики.............
function mclick(event){

if (event.button==0){
        //отключать реакцию по умолчанию на левую кнопку мыши
            event.preventDefault();
            event.stopPropagation();

//Вставить
var clipboard = Components.classes["@mozilla.org/widget/clipboardhelper;1"].  getService(Components.interfaces.nsIClipboardHelper);
gURLBar.value = readFromClipboard();

//функция-перейти
function msearch(event){
if (gBrowser.currentURI.spec != 'about:blank')
{gBrowser.selectedTab = gBrowser.loadOneTab(gURLBar.value)}
else
{gBrowser.loadURI(gURLBar.value)}
}

//фылтр           
var strokaadresa= gURLBar.value;
var nsa=strokaadresa.substring(0,5);
if (nsa=="file:"){msearch(event);}
else
if (nsa=="http:"){msearch(event);}
else
if (nsa=="ftp:/"){msearch(event);}
else
{
//поиск
BrowserSearch.loadSearch(gURLBar.value, false);
}
 }
  };
bunda1 пишет

но тогда выделенный текст не будет искать

bunda1 пишет

У этого кода есть недостатки - копирует любой выделенный текст наведением курсора на строку поиска или на адресную строку.

вот в этом то вся проблема и остается!
я выделяю текст на странице, жму дабл-ЛКМ на строке поиска  - открывается поисковик с результатами  в этой же вкладке (по хорошему должно же в новой?) - а так вроде все как надо
а если после выделения на странице жать дабл-ЛКМ на строке адреса, то по первому клику выделится все содержимое строки, внесется в буфер и вот его (это содержимое) уже и будет искать (или на него переходить) - это неправильно!

Inko7 пишет

Но если страница не пустая (или грузится), то вставляет очень редко. В итоге открывается сайт поисковика, но без результатов...

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

Inko7
копирует любой выделенный текст наведением курсора на строку поиска или на адресную строку - любой выделенный текст на странице
копирует любой выделенный текст наведением курсора на строку поиска - наведением курсора, не кликом


Inko7 пишет

я выделяю текст на странице, жму дабл-ЛКМ на строке поиска  - открывается поисковик с результатами  в этой же вкладке
(по хорошему должно же в новой?)
при клике на строке поиска результаты получаем в текущей вкладке

вроде исправил:

Выделить код

Код:

// удаление обработчиков для строки поиска, при открытии настройки панелей
this.onDestroy = function() {
searchbox.removeEventListener("dblclick", mclick, false);
searchbox.removeEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);
};

// удаление обработчиков для адресной строки, при открытии настройки панелей
this.onDestroy = function() {
document.getElementById("urlbar").removeEventListener("dblclick", mclick, false);
document.getElementById("urlbar").removeEventListener("mouseover", function(e){if(!gURLBar.focused) goDoCommand("cmd_copy");}, false)
};

// добавляем обработчики для строки поиска..........
var searchbar = document.getElementById("searchbar");
var searchbox = document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-textbox");
searchbox.addEventListener("dblclick", mclick, false);
//наведением курсора на строку поиска копировать выделенный текст 
searchbox.addEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);

// добавляем обработчики для адресной строки........ 
document.getElementById("urlbar").addEventListener("dblclick", mclick, false);
//наведением курсора на адресную строку копировать выделенный текст 
document.getElementById("urlbar").addEventListener("mouseover", function(e){if(!gURLBar.focused) goDoCommand("cmd_copy");}, false);

//функция которую запускает обработчики.............
function mclick(event){

if (event.button==0){
        //отключать реакцию по умолчанию на левую кнопку мыши
            event.preventDefault();
            event.stopPropagation();

//Вставить
var clipboard = Components.classes["@mozilla.org/widget/clipboardhelper;1"].  getService(Components.interfaces.nsIClipboardHelper);
gURLBar.value = readFromClipboard();

//функция-перейти
function msearch(event){
if (gBrowser.currentURI.spec != 'about:blank')
{
var tab = getBrowser().addTab(gURLBar.value, null, null);
getBrowser().selectedTab = tab;
}
else
{gBrowser.loadURI(gURLBar.value)}
}

//фылтр           
var strokaadresa= gURLBar.value;
var nsa=strokaadresa.substring(0,5);
if (nsa=="file:"){msearch(event);}
else
if (nsa=="http:"){msearch(event);}
else
if (nsa=="ftp:/"){msearch(event);}
else
{
//поиск.........................
var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
var submission = ss.defaultEngine.getSubmission(readFromClipboard(), null);
//открыть результаты поиска в новой вкладке
if (gBrowser.currentURI.spec != 'about:blank' )
{
gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, false, false);
}
//открыть результаты поиска в текущей вкладке
else
{
loadURI(submission.uri.spec, null, submission.postData, false);
}
}
 }
  };


Или попробуй этот код:

:D Клик средней кнопкой мыши на кнопке выбора поисковика, ищет выделенный текст на странице или при отсутствии выделения текст из буфера обмена в поисковике по умолчанию.

Выделить код

Код:

//Клик средней кнопкой мыши на кнопке выбора поисковика, ищет выделенный текст на странице или при отсутствии выделения текст из буфера обмена в поисковике по умолчанию.

(function() {
    var searchClipboard = function(event) {
        if (event.button != 1)
            return;
        // получить выделенный текст
        var text = content.getSelection().toString();
                if(text)
                {
                var str = text;
                }
                // получить текст из буфера обмена
            else
            {
            var str = readFromClipboard();
        }
        //.........
        var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
        var submission = ss.defaultEngine.getSubmission(str, null);        
        //открыть результаты поиска в новой вкладке
        if (gBrowser.currentURI.spec != 'about:blank' )
                {
                gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, false, false);
        }
        //открыть результаты поиска в текущей вкладке
        else
        {
        loadURI(submission.uri.spec, null, submission.postData, false);
        }
        
    };
    var searchbar = document.getElementById("searchbar");
        
    // добавляем обработчик для строки поиска..........
    document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-engine-button")
    .addEventListener("click", searchClipboard, false);
}());
bunda1 пишет

вроде исправил

Отличненько!!! Никаких проблем со вставкой из буфера и вставкой выделенного на странице! Класс!
Однако, почему-то ищет только в поисковике по-умолчанию. Даже если выбрать в панели поиска другой поисковик и нажать дабл-СКМ, то искаться будет не в нем, а в поиске по умолчанию. :|
В предыдущих кодах с этим было нормально.

Inko7 пишет

Отличненько!!! Никаких проблем со вставкой из буфера и вставкой выделенного на странице! Класс!
Однако, почему-то ищет только в поисковике по-умолчанию. Даже если выбрать в панели поиска другой поисковик и нажать дабл-СКМ, то искаться будет не в нем, а в поиске по умолчанию. :|
В предыдущих кодах с этим было нормально.

Не надо дабл-СКМ а надо дабл-ЛКМ,
Я думал что ты хочешь, что бы дабл-ЛКМ на адресной строке или на строке поиска искал поисковике по умолчанию, уточни так ли это.

Inko7 пишет

Однако, почему-то ищет только в поисковике по-умолчанию. Даже если выбрать в панели поиска другой поисковик и нажать дабл-СКМ, то искаться будет не в нем, а в поиске по умолчанию. :|
В предыдущих кодах с этим было нормально.

блин, вот у меня руки кривые, опять ошибся :angry:
конечно же я хотел написать дабл-ЛКМ !

bunda1 пишет

Я думал что ты хочешь, что бы дабл-ЛКМ на адресной строке или на строке поиска искал поисковике по умолчанию, уточни так ли это.

в твоем последнем варианте (пост №11) меня абсолютно все устроило, кроме поиска в поисковике по-умолчанию!
Нужен поиск в текущем поисковике, который выбран в панели поиска!

Inko7
Поиск в активной вкладке, текста  из буфера обмена или выделенного текста, в текущем поисковике или открыть адрес(ссылку)из буфера обмена,  двойным левым кликом на адресной строке или на строке поиска.

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

Выделить код

Код:

// удаление обработчиков для строки поиска, при открытии настройки панелей
this.onDestroy = function() {
searchbox.removeEventListener("dblclick", mclick, false);
searchbox.removeEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);
};

// удаление обработчиков для адресной строки, при открытии настройки панелей
this.onDestroy = function() {
document.getElementById("urlbar").removeEventListener("dblclick", mclick, false);
document.getElementById("urlbar").removeEventListener("mouseover", function(e){if(!gURLBar.focused) goDoCommand("cmd_copy");}, false)
};

// добавляем обработчики для строки поиска..........
var searchbar = document.getElementById("searchbar");
var searchbox = document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-textbox");
searchbox.addEventListener("dblclick", mclick, false);
//наведением курсора на строку поиска копировать выделенный текст 
searchbox.addEventListener("mouseover", function(e){goDoCommand("cmd_copy");}, false);

// добавляем обработчики для адресной строки........ 
document.getElementById("urlbar").addEventListener("dblclick", mclick, false);
//наведением курсора на адресную строку копировать выделенный текст 
document.getElementById("urlbar").addEventListener("mouseover", function(e){if(!gURLBar.focused) goDoCommand("cmd_copy");}, false);

//функция которую запускает обработчики.............
function mclick(event){

if (event.button==0){
        //отключать реакцию по умолчанию на левую кнопку мыши
            event.preventDefault();
            event.stopPropagation();

//Вставить
var clipboard = Components.classes["@mozilla.org/widget/clipboardhelper;1"].  getService(Components.interfaces.nsIClipboardHelper);
gURLBar.value = readFromClipboard();

//функция-перейти
function msearch(event){
if (gBrowser.currentURI.spec != 'about:blank')
{
var tab = getBrowser().addTab(gURLBar.value, null, null);
getBrowser().selectedTab = tab;
}
else
{gBrowser.loadURI(gURLBar.value)}
}

//фылтр           
var strokaadresa= gURLBar.value;
var nsa=strokaadresa.substring(0,5);
if (nsa=="file:"){msearch(event);}
else
if (nsa=="http:"){msearch(event);}
else
if (nsa=="ftp:/"){msearch(event);}
else
{
//поиск в текущем поисковике
var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
var submission = ss.currentEngine.getSubmission(readFromClipboard(), null);
//если это не пустая вкладка
if (gBrowser.currentURI.spec != 'about:blank' )
{
//открыть результаты поиска в новой вкладке
gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, false, false);
}
//если это пустая вкладка
else
{
//открыть результаты поиска в текущей вкладке
loadURI(submission.uri.spec, null, submission.postData, false);
}
}
 }
  };

bunda1
Вот теперь подкопаться не к чему! Глюков пока не найдено - работает все как надо!
СПАСИБО! :beer:

bunda1
а если нужно найти [например, в текущем поисковике] адрес?.. ;)

slbgz пишет

bunda1
а если нужно найти [например, в текущем поисковике] адрес?.. ;)

Эти коды адреса искать не будут. А у тебя есть идеи?

Location Bar+
Исправил ошибки:
kод невыдел выделенный текст в текстовых полях.
Добавил новые возможности:
Возможность открыть из буфера обмена или выделенный адрес типа custombutton://%3C%3Fxm..... из Готовые кнопки для Custom Buttons | Форум Mozilla Россия, двойным левым кликом на адресной строке.

bunda1 пишет

Эти коды адреса искать не будут. А у тебя есть идеи?

Нет... я намекал на то, что моя кнопка Go plus!³, в которой я использовал много твоего кода и кода других кнопкописателей плюс немножко присочинил сам, это все может и даже - еще больше, ей пофиг, что именно открывать и что именно и где именно искать... :D

П.С. Есть идея!
Дарю! ;)
нужно повесить на тот двойной клик контекстную менюшку[адресной строки, естественно]  и из нее выбирать действия, вот и все...
... или  - еще лучше - добавить в контекстное меню адресной строки соответствующие пункты и таким образом обойтись без двойных кликов... не люблю я их почему-то...  :D

19-10-2011 20:31:21
П.П.С. :D
Я даже название уже придумал... U®LBar MENU plus! ;)

slbgz
Kнопка и контекстное меню это конечно хорошо, но я поклонник минимализма.

минимализма в чем? что-то я перестаю эти слова понимать... минимум функций что-ли? или - минимум элементов на экране?
если - первое, то я против такого минимализма :angel: