S3.Blog

23 Октября 2017
A A A   RSS-лента
"Я знаю, что ничего не знаю, но многие не знают и этого". Сократ [?].

Firefox: дополнения Firefox (fix-версии)

Дата последнего изменения: 23 Марта 2011
Метки статьи: Готовые решения, Фиксы & Хаки, Firefox
Есть в сборнике дополнений для Firefox пара замечательных дополнений, но, к сожалению, авторы их забросили и начиная с версии Firefox 3.5 они уже якобы не совместимо с браузером. Но это не совсем так.
 

Сделаем небольшой фикс: в файле install.rdf надо переставить максимальную версию до 4.0 - и вот у нас уже полноценные рабочие версии этих дополнений.



Fetch Text URL - Откройте простые текстовые URL с помощью контекстного меню
Оригинальная ссылка: https://addons.mozilla.org/ru/firefox/addon/fetch-text-url/
Fix-версия: https://addons.mozilla.org/ru/firefox/addon/fetch-text-url-fix-version/


Extended Copy Menu - Предлагает скопировать выделенное в виде простого текста или как html
Оригинальная ссылка: https://addons.mozilla.org/ru/firefox/addon/extended-copy-menu/
Fix-версия: https://addons.mozilla.org/ru/firefox/addon/extended-copy-menu-fix-vers/




Похожие материалы:




Сергей (гость) • ответить
Александр, благодарю за S3.Download Statusbar!
Alex (гость) • ответить
Есть пожелание дополнить fix версию "Fetch Text URL" возможностью определять выделенный текст в поле ввода (типа того, где сейчас текст набираю или однострочный вариант). Даю решение, чтоб добавить в существующий аддон и не плодить дополнительные.
Добавилась одна новая функция getBrowserSelection_ и минимальные изменения в существующей searchSelected.

//------------------------------------------------------------------------------
/** from firefox-34.0.5.source\mozilla-release\browser\base\content\browser.js:5132
* Gets the selected text in the active browser. Leading and trailing
* whitespace is removed, and consecutive whitespace is replaced by a single
* space. A maximum of 150 characters will be returned, regardless of the value
* of aCharLen.
*
* @param aCharLen
* The maximum number of characters to return. -1 - for no limit
*/
FTU.getBrowserSelection_ = function(aCharLen) {
// selections of more than 150 characters aren't useful
const kMaxSelectionLen = 150;
const charLen = Math.min(aCharLen || kMaxSelectionLen, kMaxSelectionLen);

//let [element, focusedWindow] = BrowserUtils.getFocusSync(document);
var focusedWindow = document.commandDispatcher.focusedWindow;
var element = document.commandDispatcher.focusedElement;
var selection = focusedWindow.getSelection().toString();
// try getting a selected text in text input.
if (!selection) {
var isOnTextInput = function isOnTextInput(elem) {
// we avoid to return a value if a selection is in password field.
// ref. bug 565717
return elem instanceof HTMLTextAreaElement ||
(elem instanceof HTMLInputElement && elem.mozIsTextField(true));
};

if (isOnTextInput(element)) {
let Ci = Components.interfaces;
selection = element.QueryInterface(Ci.nsIDOMNSEditableElement)
.editor.selection.toString();
}
}

if (selection) {
if (charLen>0 && selection.length > charLen) {
// only use the first charLen important chars.
var pattern = new RegExp("^(?:\\s*.){0," + charLen + "}";
pattern.test(selection);
selection = RegExp.lastMatch;
}
else
selection = selection.trim().replace(/\s+/g, " ";

//if (charLen>0 && selection.length > charLen)
// selection = selection.substr(0, charLen);
}
return selection;
}

//------------------------------------------------------------------------------

FTU.searchSelected = function() {
//var focusedWindow = document.commandDispatcher.focusedWindow;
//var searchStr = focusedWindow.getSelection();
var searchStr = FTU.getBrowserSelection_(-1);
searchStr = searchStr.toString();
searchStr = searchStr.replace( /^\s+/, "" );
searchStr = searchStr.replace(/(\n|\r|\t)+/g, " ";
searchStr = searchStr.replace(/\s+$/,"";

if (! /[^\.]+\.[^\.]+/.test(searchStr)) {
searchStr = '';
}
return searchStr || gContextMenu.linkURL;
}
//------------------------------------------------------------------------------

Надеюсь, данный функционал будет добавлен.
Спасибо.
Александрответить
напишите мне на емейл: pag77@mail.ru

 
 
  Имя *:   Решите пример *: =
 
Полужирный Курсив Подчеркнутый Перечеркнутый
 
Вставить изображение Сделать цитатой Вставить ссылку Вставить код

Вставить смайл
 
 

 



© S3.Blog: Если критикуешь, не предлагая решения проблемы, то ты становишься частью этой проблемы.