Расширение Firefox, которое копирует HTML-ссылку на текущую веб-страницу в буфер обмена, а не только URL-адрес

Ситуация

Мне нужно автоматизировать копирование HTML-ссылки на текущую страницу, которая просматривается на текущей вкладке Firefox, в другие редакторы WYSIWYG. Это не то же самое, что копирование простого текста URL-адреса и не то же самое, что вставка простого текста заголовка веб-страницы. Это также не то же самое, что перейти на какую-либо другую веб-страницу, содержащую HTML-ссылку на интересующую страницу, выделить текст с помощью курсора мыши и нажать CTRL-C, чтобы скопировать его в буфер обмена текущей операционной системы (как Linux, и Windows, не должны иметь никакого значения). Только обновление буфера обмена должно быть автоматизировано; вставка из буфера обмена в целевое приложение будет выполняться вручную.

Желаемый вариант использования выглядит следующим образом:

  1. Пользователь просматривает любую веб-страницу из Firefox.
  2. Пользователь вводит определенную пользователем последовательность клавиш, которая не противоречит стандартным встроенным клавишам Firefox.
  3. Затем Firefox выполнит только часть того, что Копировать Link Bookmarklet делает: вместо того, чтобы открывать новое отдельное окно/вкладку и конструировать и отображать HTML для ссылки, а затем требовать от пользователя траты времени на выбор и копирование ссылки в буфер обмена, расширение затем отформатируйте сам HTML и скопируйте его напрямую в буфер обмена.
  4. Затем пользователь выбирает любую из целей, описанных ниже, и набирает CTRL-V, чтобы вставить отформатированный текст.
  5. Затем пользователь видит ссылку как ссылку в этой целевой области и не видит ничего буквального, например http://...

Например, если просматриваемая веб-страница была http://www.google.com, и пользователь нажал кнопку определяемую пользователем последовательность клавиш, и если пользователь вставит ее в какой-либо документ Google, он увидит в этом документе не http://www.google.com и не увидит Google, а вместо этого увидит то, что вы увидите, когда вы прочитайте это в StackOverflow в веб-браузере: Google

Теперь есть расширения и букмарклеты Firefox, которые приближаются к этому, но все они не связаны с чистым сокращением накладных расходов на движение мыши и/или нажатие клавиш, что является наиболее трудоемким аспектом этого часто встречающегося вариант использования. Мои поиски существующего расширения не выявили ничего, что точно соответствовало бы моим потребностям (см. раздел «Исследования» ниже). Поэтому я думаю, что мне, возможно, придется развернуть собственное расширение (или изменить существующее), если только кто-нибудь не укажет мне на существующее расширение, обеспечивающее эту функциональность.

Расширение, которое я имею в виду, должно работать в Firefox версии 11 или выше, работающей как в Linux, так и в любой версии Windows. Должен быть нужен только Firefox и подходящее расширение Firefox, а не какое-либо другое специальное программное обеспечение.

Целями пасты должны быть:

  1. GMail создает текстовые области
  2. Документы Google
  3. Документы Microsoft Word
  4. Microsoft Outlook создает текстовые области.
  5. Любой другой редактор WYSIWYG, например редактор сообщений Blogger.
  6. Блокнот (в этом случае вставляется только заголовок веб-страницы, а не URL-адрес, или заголовок веб-страницы и URL-адрес в виде отдельного открытого текста; в любом случае).

О заданных пользователем привязках клавиш: если бы уже существовало расширение, которое делало вышеперечисленное, но не предоставляло возможности привязки к нему привязки клавиш, то я ожидал бы, что смогу использовать расширение расширение keyconfig для обработки этого аспекта. На самом деле, это может быть даже предпочтительнее; Я еще не знаю.

Исследовать

Ниже приведены подходы, которые я исследовал, которые были близки к тому, что я хочу, но не совсем соответствовали потребностям:

  1. Взлом Копировать Link Bookmarklet не будет работать, потому что, насколько я могу судить, нет способа обновить буфер обмена ОС из букмарклета, поэтому я думаю, что требуется расширение Firefox.
  2. В расширении Firefox , как я могу скопировать форматированный текст/ссылки в буфер обмена?
  3. 3 дополнения FireFox к Easier Копировать ссылки и тексты привязок. Ни одно из перечисленных расширений не делает того, что мне нужно, потому что они заставляют вас использовать правую кнопку мыши и перемещаться на один или два уровня контекстного меню вниз, что является пустой тратой времени.
  4. Копировать текст ссылки (CoLT) — CoLT также поддерживает копирование гиперссылки и связанного с ней текста как ссылка в формате RTF, однако она не включает привязку клавиш по умолчанию. Похоже, что кто-то пытается связать keyconfig с CoLT, что может быть вариантом в качестве решения.
  5. Копировать URL Plus – -логика буфера обмена, но не похоже, что она поддерживалась со времен Firefox 1.x.

person bgoodr    schedule 24.03.2012    source источник


Ответы (1)


Я отвечаю на свой вопрос:

введите здесь описание изображенияПривязка CTRL-SHIFT-F11 автоматически перестанет работать, если оба keysnail и keyconfig установлены в тот же браузер Firefox. Исправление для меня состояло в том, чтобы просто удалить keysnail, так как я его не использую.

На самом деле мне не нужно было писать собственное расширение для Firefox, но мне нужно было вычистить немного кода, который копирует ссылку в формате RichText из Копировать текст ссылки (CoLT) и применить его непосредственно в качестве привязки к keyconfig следующим образом:

  1. Установите расширение keyconfig.
  2. Перезапустите Фаерфокс.
  3. После загрузки Firefox введите CTRL-SHIFT-F12, чтобы открыть меню конфигурации keyconfig.
  4. В нижней части страницы нажмите кнопку Добавить новый ключ.
  5. В поле Имя введите подходящее имя, например Copy Rich Text Link to Current Page.
  6. Введите следующий фрагмент кода Javascript (этот код я вырезал из функции objCoLT.CopyBoth внутри файла content/colt.js внутри Копировать текст ссылки (CoLT) расширение):

    var url = content.document.location.href;
    var text = content.document.title;
    
    // Use the users selection instead of the title if text is selected:
    var selection = document.commandDispatcher.focusedWindow.getSelection().toString();
    if (selection != "")
    {
        text = selection;
    }
    
    var richText = "<a href=\"" + url + "\">" + text + "</a>";
    
    var xfer = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
    xfer.addDataFlavor("text/html");
    
    var htmlString = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
    htmlString.data = richText;
    xfer.setTransferData("text/html", htmlString, richText.length * 2);
    
    var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard);
    clipboard.setData(xfer, null, Components.interfaces.nsIClipboard.kGlobalClipboard);
    
  7. Нажмите «ОК».

  8. В главном диалоговом окне Keyconfig <disabled> должно отображаться в текстовом поле слева от кнопки Применить.
  9. Щелкните это текстовое поле и введите комбинацию клавиш, которую вы хотите связать с ним, например CTRL-SHIFT-F11.
  10. Нажмите кнопку Применить.
  11. Нажмите кнопку Закрыть, чтобы закрыть диалоговое окно настройки Keyconfig.

Чтобы проверить это, выполните следующие действия:

  1. В Firefox перейдите на произвольную страницу.
  2. Введите CTRL-SHIFT-F11 (или любую комбинацию клавиш, которую вы выбрали выше).
  3. Обратите внимание, что диалоговые окна не появляются; это намеренно.
  4. Откройте Документы Google и создайте новый документ.
  5. Щелкните новый документ и введите CTRL-V.
  6. Вы должны увидеть форму HTML/форматированного текста вставленной ссылки.
  7. Щелкните ссылку, а затем щелкните URL-адрес слева от Change.
  8. Браузер должен открыть исходную страницу, соответствующую этому URL-адресу.
person bgoodr    schedule 25.03.2012