1

HTMLのテキストエリアにテキストを挿入しようとしていますか、Chrome拡張機能を使用してクリップボードからデータを取得しようとしています(コンテキストメニューを使用)。Chrome拡張機能:テキストエリア内の選択したテキストをクリップボードのデータに置き換えます。

私は現在、私のmanifest.jsonをファイルにこれらの権限を持っている:

"permissions": [ 
    "contextMenus", 
    "clipboardRead", 
    "clipboardWrite"], 

私のjavascriptのスキルはまだかなり基本的ですが、SO上でかなりの間を費やしたにもかかわらず、私は文書でセキュリティ問題を克服するために見えることはできません.execCode( 'paste')またはテキストボックスにテキストを挿入するために必要な特定の構文。

プログラムによりこれは、私は機能がどうなる想像です:

  1. は、現在のテキストエリア内の選択した文字列を取得し、 変数「orig_str」にコピーします。
  2. 文字列の場合は、現在のクリップボードを取得し、 を変数 "clip_str"に格納します。そうでない場合は、変数をnothingに設定します。
  3. 現在のテキストエリアの元の選択文字列を "orig_str + clip_str"で上書きします。だから、

TEXTAREAが含まれている場合:

I eat peas 

とクリップボードが含まれる:

and cook 

、その後、機能が活性化された、 "食べる" を選択したユーザ、テキストエリア内の文字列を読み取りに変更されます:

I eat and cook peas 

好ましくはJQueryではなくストレートJSを使用して評価してください。

+0

正確に何をして動作しません:ちょうど2つの文字列CONCAT

var selection = new window.getSelection, selectedText = selection.anchorNode.data, textarea = window.document.querySelector('textarea'); 

残りは簡単です。そして、あなたはwindow.getSelection機能により、ブラウザで選択したテキストを読むことができますか? – gengkev

答えて

0

Chromeエクステンションがクリップボードにアクセスする方法がわからないので、clipboardという変数にクリップボードの文字列があると思います。

textarea.value = textarea.value.replace(selectedText, clipboard); 
+0

> textarea.value.replace(selectedText、clipboard); これは、選択したビットだけでなく、すべてのインスタンスを置き換えます。 –

関連する問題