2017-04-26 13 views
0

入力やテキストエリアのフィールドに特定のキーストロークの組み合わせがあると、特定の文字を変更できるChrome拡張機能を作成しました。私が入力しているものが入力またはテキストエリアである限り、正常に動作します。しかし、私がFaceBookのようなサイトに行って投稿やコメントフィールドを試してみると、それらのフィールドには何らかの形でテキストエリアのタグが付いていないので動作しません。非タグ付きテキストエリアまたは入力フィールドの検出

ここに私が現在使っているものがあります。

document.activeElement.onkeydown = function(){ getCharKeyDown(event) }; 
document.activeElement.onkeyup = function(){ getCharKeyUp(event) }; 

私は、ユーザーが実際にテキストエリア(平野くださいJavaScriptで)していないようですテキストエリアに入力しているかどうかを検出するために、行うために何が必要でしょうか?

ありがとうございました。

+0

コメントフィールドでソースを調べるとどうなりますか?それはいくつかのタイプの要素でなければなりません... – ddubs

+1

あなたのコードは 'function(event){getCharKeyDown(event)};'でなければなりません。そして、あなたはtextareaではなくcontenteditable要素をタイプしています – epascarello

+0

FB postフィールドは ここにテキストダンプがありますhttps://pastebin.com/udCsP64q – user126440

答えて

0

epascarelloのおかげで、私はそれを並べ替えたと思います。 HTMLElement.contentEditableプロパティについて少し読んだら、Document.execCommand()はすべての編集可能な要素を処理するように見えました。

これは私が

function insertAtCursor(myField, myValue) { 
    document.execCommand('insertHTML', false, myValue); 
} 

を作り、今、私はどこに私の機能を実行することができています主な変化でした。

関連する問題