2

状況

現在の Firefox タブに表示されている現在のページへの HTML リンクを他の WYSIWYG エディターにコピーする作業を自動化する必要があります。これは、URL のプレーン テキストのみをコピーすることと同じではなく、Web ページ タイトルのプレーン テキストのみを貼り付けることとも同じではありません。これは、関心のあるページへの HTML リンクがある他の Web ページに移動し、マウス カーソルでテキストを選択し、CTRL-C を入力して現在のオペレーティング システムのクリップボード (どちらも Linux) にコピーすることと同じではありません。と Windows では、違いはありません)。クリップボードへの更新のみが自動化されます。クリップボードからターゲット アプリケーションへの貼り付けは手動で行われます。

希望するユースケースは次のとおりです。

  1. ユーザーは、Firefox 内から任意の Web ページを閲覧します。
  2. ユーザーは、標準の Firefox 組み込みキー バインドと競合しないユーザー指定のキー シーケンスを入力します。
  3. Firefox は、リンクのコピー ブックマークレットが行うことの一部のみを行い ます。新しい別のウィンドウ/タブを開き、リンクの HTML を構築してレンダリングし、ユーザーがリンクを選択してクリップボードにコピーする際に動きを無駄にする必要はありません。 、拡張機能は HTML 自体をフォーマットし、それをクリップボードに直接コピーします。
  4. ユーザーは、次に説明するターゲットのいずれかを選択し、CTRL-V を入力して、書式設定されたテキストを貼り付けます。
  5. ユーザーはそのリンクをそのターゲット領域内のリンクとして認識し、次の ような文字どおりのものは表示しません。http://...

たとえば、閲覧した Web ページがhttp://www.google.comで、ユーザーがユーザー定義のキー シーケンスをクリックし、それを Google ドキュメントに貼り付けた場合、そのドキュメントに表示される内容 http://www.google.comも表示されませんがGoogle、代わりに、Web ブラウザーの StackOverflow でこれを読んだときに表示されるものが表示されます: Google

現在、Firefox の拡張機能とブックマークレットに近いものがありますが、それらはすべて、この頻繁に発生するユース ケースで最も時間を浪費する側面である、マウスの動きやキーを押すオーバーヘッドの正味の削減には関与していません。既存の拡張機能を検索しても、私のニーズを正確に満たすものは見つかりませんでした (以下の調査セクションを参照)。したがって、誰かがこの機能を提供する既存の拡張機能を教えてくれない限り、独自の拡張機能を展開する (または既存の拡張機能を変更する) 必要があると思います。

私が考えている拡張機能は、Linux または任意のバージョンの Windows で動作する Firefox バージョン 11 以降で動作するはずです。Firefox と適切な Firefox 拡張機能のみが必要であり、他の特別なソフトウェアは必要ありません。

ペーストのターゲットは次のとおりです。

  1. GMail 作成テキスト領域
  2. Google ドキュメント
  3. Microsoft Word 文書
  4. Microsoft Outlook の構成テキスト領域。
  5. Blogger 投稿エディターなどのその他の WYSIWYG エディター。
  6. メモ帳 (この場合、URL ではなく Web ページのタイトルのみが貼り付けられるか、Web ページのタイトルと URL の両方が別のプレーンテキストとして貼り付けられます)。

ユーザー指定のキーバインディングについて: 上記を実行する拡張機能がすでに存在するが、キーバインディングをバインドする機能を提供していない場合、 keyconfig 拡張拡張機能を使用してその側面を処理できると期待します。実際、それは望ましいことかもしれません。私にはまだ分かりません。

リサーチ

以下は、私が調査したアプローチで、私が望むものに近づいたものの、ニーズを正確には満たしていませんでした。

  1. Copy Link Bookmarkletのハッキングは機能しません。なぜなら、ブックマークレットから OS のクリップボードを更新する方法がないためです。そのため、Firefox の拡張機能が必要だと思います。
  2. Firefox 拡張機能で、リッチ テキスト/リンクをクリップボードにコピーするにはどうすればよいですか?
  3. リンクとアンカーテキストを簡単にコピーできる 3 つの FireFox アドオン-- リストされている拡張機能のどれも、私が望んでいるものではありません。
  4. リンク テキストのコピー (CoLT) -- CoLT は、ハイパーリンクとそれに関連するテキストをリッチ テキスト形式のリンクとしてコピーすることもサポートしていますが、デフォルトのキーバインドは含まれていません。他の誰かが keyconfig を CoLT に結び付けようとしているようです。これは解決策としてのオプションである可能性があります。
  5. Copy URL Plus -- クリップボードへのコピー ロジックがあるように見えますが、Firefox 1.x の時代から維持されているようには見えません。
4

1 に答える 1

2

私は自分の質問に答えています:

ここに画像の説明を入力keysnailkeyconfigの両方が同じ Firefox ブラウザーにインストールされている場合、CTRL-SHIFT-F11バインディングはサイレントに動作を停止します。私にとっての修正は、keysnailを使用していないので単にアンインストールすることでした。

実際には、独自の Firefox 拡張機能を作成する必要はありませんでしたが、次のように、Copy Link Text (CoLT)拡張機能からリッチテキスト リンクをコピーし、 keyconfig拡張機能へのバインディングとして直接適用するコードを少しかき出す必要がありました。 :

  1. keyconfig拡張機能をインストールします。
  2. Firefox を再起動します。
  3. Firefox がロードされたら、入力CTRL-SHIFT-F12してkeyconfig設定メニューを表示します。
  4. ページの下部にある [新しいキーの追加] ボタンをクリックします。
  5. [名前]フィールドに、 などの適切な名前を入力しCopy Rich Text Link to Current Pageます。
  6. 次の Javascript コードのチャンクを入力します (このコードは、 Copy Link Text (CoLT)拡張objCoLT.CopyBoth機能内のcontent/colt.js ファイル内の関数から切り取ったものです)。

    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. [OK] をクリックします。

  8. メインの Keyconfig ダイアログに戻ると、 Applyボタン<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 に対応する元のページを開く必要があります。
于 2012-03-25T18:40:15.767 に答える