谷歌表格输入栏的设定值问题?

时间:2016-09-06 09:12:47

标签: google-chrome google-chrome-extension google-form firefox-webextensions

我已经制作了一个Chrome扩展程序,用户可以通过点击Chrome的上下文菜单将其重要链接保存在扩展名和粘贴链接中,但是有一个错误:它不适用于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 个答案:

答案 0 :(得分:0)

错误:当我的扩展程序在input / Textarea字段中粘贴某些内容时,我没有发送按键事件。

Soultion :我使用sendkey事件解决了这个问题,您可以阅读有关如何触发sendkey事件here .的信息。

相关问题