-1

Я сделал расширение Chrome, в котором пользователь сохраняет свои важные ссылки в расширении и вставках, которые ссылаются на контекстное меню Chrome, но есть ошибка: он не работает для форм Google.Проблема в заданном значении поля ввода форм Google?

screencast

Когда я click на кнопку отправки, сайт дает мне ошибку, что 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 Я ничего не делаю после атрибута set value поля ввода. –

ответ

0

Bug: Я не посылает событие, когда мое нажатие удлинительные пасты что-то в поле ввода/Textarea.

Soultion: Я решил эту ошибку, используя sendkey событие, вы можете прочитать о том, как вызвать sendkey событие here ..

Смежные вопросы