我正在开发 Chrome 扩展程序,目的是在我们的 ERP 系统(Sage ERP X3 V7)中将 Excel 中的“粘贴”功能提供到表单/表格中。
我的一切工作都相当顺利,但是我遇到了问题,让您手动输入文本时触发的默认事件在以编程方式放入时触发。
我使用“Visual Event”来查看分配给输入的事件侦听器,并尝试使用 jQuery .trigger 方法手动触发它们。
我不确定这只是时间问题还是什么?通常,当您手动输入行时,您将点击选项卡以移动到下一个字段,并且在继续之前需要一些时间来验证您的数据。这就是我需要在这里触发的验证。
这是我用来尝试触发 focusin 和 focusout 事件的代码片段 -
function pasteLineData(lineData, data_s_article){
console.log($(".s-list-core[data-s-article='" + data_s_article + "'] tbody>tr:last").length);
var fieldData = lineData.split("\t");
var f=0;
$(".s-list-core[data-s-article='" + data_s_article + "'] tbody>tr:last").each(function (){
var $fields = $(this).find("input[readonly!='readonly']:not(.s-readonly):visible");
$fields.each(function(){
console.log($(this).attr("id"));
console.log(fieldData[f]);
$(this).trigger("focusin");
$(this).val(fieldData[f]);
$(this).trigger("focusout");
f++;
});
});
}
(使用中的选择器只是用来抓取特定的表和只有活动的字段,有些只是显示)
关于如何让我的扩展程序模拟进入过程的任何建议?