web-dev-qa-db-ja.com

Chrome拡張機能は選択されたテキストを取得

選択したテキストをChrome拡張機能に取り込む方法を探しています。

元になりたい。 Facebookフィードのテキストを選択し、アイコンをクリックすると、そのテキストが取得され、選択したテキストが拡張機能に表示されます。

私はこれまでのところこれを得ました:

chrome.tabs.executeScript(null, {
  code: "alert(window.getSelection().toString());"
})

選択したテキストを取得し、Chromeでメッセージで警告します。ただし、HTMLポップアップに表示したいです。次のように書きたい:

document.getElementById("output").value = "Selected text here(but how)"

助けが必要!そして、これについて他の質問があることは知っていますが、彼らは私が欲しいものを正確にくれませんでした。

24

実行されたコードによって評価された最後の式をコールバック関数で使用できます。

chrome.tabs.executeScript( {
  code: "window.getSelection().toString();"
}, function(selection) {
  document.getElementById("output").value = selection[0];
});
35
rsanchez

これを行うには、 Extensions Messaging を使用します。基本的に、「バックグラウンドページ」はリクエストをサービスに送信します。たとえば、「ポップアップ」があり、それをクリックすると、サービスである「Google検索」が実行されます。

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    if (request.method == "getSelection")
      sendResponse({data: window.getSelection().toString()});
    else
      sendResponse({}); // snub them.
});

いくつかの参照

  1. chromeページ上の強調表示されたテキストを取得し、popup.htmlのtextareaに挿入する拡張機能を作成する

または、このプラグインを使用できます

  1. https://chrome.google.com/webstore/detail/view-selection-source/fbhgckgfljgjkkfngcoeajbgndkeoaaj
2
Vaibs_Cool