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

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

№108-10-2011 23:44:58

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

[CB]Location Bar+

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);
}
 }
  }
   };

Отредактировано bunda1 (19-10-2011 19:29:47)

Отсутствует

 

№209-10-2011 12:57:55

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

Re: [CB]Location Bar+

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

Выделить код

Код:

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

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

Выделить код

Код:

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

Отредактировано bunda1 (09-10-2011 13:24:39)

Отсутствует

 

№313-10-2011 17:42:12

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 7.0

Re: [CB]Location Bar+

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

Отсутствует

 

№413-10-2011 20:22:14

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

Re: [CB]Location Bar+

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);
}
              };

Отсутствует

 

№513-10-2011 22:00:09

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 7.0

Re: [CB]Location Bar+

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 (13-10-2011 22:13:24)

Отсутствует

 

№614-10-2011 20:38:49

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

Re: [CB]Location Bar+

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 как адрес.

Отредактировано bunda1 (14-10-2011 20:47:03)

Отсутствует

 

№714-10-2011 21:21:03

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

Re: [CB]Location Bar+

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);
}
 }
  };

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

Отсутствует

 

№815-10-2011 18:52:44

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 7.0

Re: [CB]Location Bar+

bunda1 пишет

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

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

bunda1 пишет

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

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

Отсутствует

 

№915-10-2011 22:27:48

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

Re: [CB]Location Bar+

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);
}
 }
  };

Отсутствует

 

№1015-10-2011 23:52:24

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 7.0

Re: [CB]Location Bar+

bunda1 пишет

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

bunda1 пишет

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

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

Inko7 пишет

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

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

Отсутствует

 

№1116-10-2011 00:38:06

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

Re: [CB]Location Bar+

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 (16-10-2011 01:21:30)

Отсутствует

 

№1216-10-2011 10:37:36

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 7.0

Re: [CB]Location Bar+

bunda1 пишет

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

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

Отредактировано Inko7 (16-10-2011 10:56:25)

Отсутствует

 

№1316-10-2011 14:00:48

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

Re: [CB]Location Bar+

Inko7 пишет

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

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

Отредактировано bunda1 (16-10-2011 14:20:39)

Отсутствует

 

№1416-10-2011 14:21:33

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 7.0

Re: [CB]Location Bar+

Inko7 пишет

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

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

bunda1 пишет

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

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

Отсутствует

 

№1516-10-2011 14:54:30

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

Re: [CB]Location Bar+

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 (16-10-2011 14:54:49)

Отсутствует

 

№1616-10-2011 16:06:07

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 7.0

Re: [CB]Location Bar+

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

Отсутствует

 

№1718-10-2011 23:21:40

slbgz
Забанен
 
Группа: Members
Зарегистрирован: 27-06-2011
Сообщений: 246
UA: Firefox 2.0

Re: [CB]Location Bar+

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

Отсутствует

 

№1819-10-2011 18:09:34

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

Re: [CB]Location Bar+

slbgz пишет

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

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

Отсутствует

 

№1919-10-2011 19:17:30

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

Re: [CB]Location Bar+

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

Отредактировано bunda1 (21-10-2011 23:12:17)

Отсутствует

 

№2019-10-2011 20:28:19

slbgz
Забанен
 
Группа: Members
Зарегистрирован: 27-06-2011
Сообщений: 246
UA: Firefox 2.0

Re: [CB]Location Bar+

bunda1 пишет

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

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

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

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

Отредактировано slbgz (19-10-2011 20:38:34)

Отсутствует

 

№2119-10-2011 20:41:56

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

Re: [CB]Location Bar+

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

Отсутствует

 

№2219-10-2011 23:47:55

slbgz
Забанен
 
Группа: Members
Зарегистрирован: 27-06-2011
Сообщений: 246
UA: Firefox 2.0

Re: [CB]Location Bar+

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

Отсутствует

 

Board footer

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