-1

Chromeの拡張機能を作成しました。重要なリンクを拡張機能に保存し、Chromeのコンテキストメニューをクリックしてペーストしますが、Googleフォームでは機能しません。私は送信ボタンの上にclickを行うとGoogleフォームの入力フィールドの設定値に問題がありますか?

screencast

、サイトは私にyou missed the fieldエラーを与えています。
このバグの原因は何ですか?

my extensionから完全なコンテンツスクリプトコード:

var element = null ; 

document.addEventListener("contextmenu", function(event){ 
    element = event.target; 
}); 

var types = [ 
    "text", 
    "url", 
    "search", 
    "tel", 
    "password", 
    "email", 
    "number", 
    "textarea" 
]; 

function getCaretPosition(element){ 
    var caretPos = 0; 

    /* Chrome and Firefox support */ 
    if(!document.selection && $.inArray(element.type, types) >= 0){ 
     /* element.selectionStart for type email give error because their is a bug in chrome */ 
     if(element.type == 'email' || element.type == 'number'){ 
      caretPos = 0 ; 
     }else{ 
      caretPos = element.selectionStart; 
     } 
    } 
    else { 
     /* IE support */ 
     if(document.selection){ 
      element.focus(); 
      var sel = document.selection.createRange(); 
      sel.moveStart('character', -element.value.length); 
      caretPos = sel.text.length; 
     } 
    } 
    return caretPos; 
} 

$(document).ready(function(){ 

    chrome.runtime.onMessage.addListener(function (response , sender , sendResponse) { 
     var caretposition = getCaretPosition(element); 
     var initvalue = element.value ; 
     var first_part = initvalue.substr(0, caretposition); 
     var last_part = initvalue.substr(caretposition); 
     if(element.type == 'email' || element.type =='number'){ 
      element.value = response.requested_link + initvalue; 
     } else { 
      var selected_text = element.value.substring(element.selectionStart, element.selectionEnd); 
      if (selected_text != ''){ 
       last_part = initvalue.substr(caretposition + selected_text.length); 
      } 
      element.value = first_part + response.requested_link + last_part; 
     } 
    }); 

}); 
+1

フォームを送信する直前に入力をリセットしたようです。それは私がイメージをデバッグする方法です...私たちはあなたが望むなら、それをPhotoshopできますが、私はあなたが関連するコードを代わりに探していると思います。そうではありませんか?... ... –

+0

@A.Wolff私のコンテンツスクリプトを見ることができます[ここ。](https://github.com/shuboy2014/Saveit-Pasteit/blob/master/js/content.js) –

+0

@ A.Wolff私は入力フィールドの設定値属性の後に何もしていません。 –

答えて

0

バグ:入力/テキストエリアフィールドの時に私の延長ペーストは何か、私はキープレスイベントを送信していないです。

Soultion:私はあなたがsendkeyイベントhere .をトリガーする方法について読むことができ、sendkeyイベントを使って、このバグを解決しました。

関連する問題