Chrome扩展程序 - 使用JQuery触发content_scripts上的事件

时间:2014-08-02 11:09:39

标签: javascript jquery google-chrome javascript-events google-chrome-extension

我写了一个Chrome扩展程序,可以自动填写一些注册表单。在“更改”事件中需要触发一些选择字段才能启动一些Ajax调用。

首先我使用JQuery attr或val来更改select字段的值,而不是使用 .trigger 来调用“change”事件,但最后一个不起作用。< / p>

示例:

  

我想选择包含单词“London”的选项并调用   change元素是为了启动native的一些操作   在“更改”事件中有一些监听器的代码

jQuery("#SelectElement option:contains('London')").attr("selected", "selected"); 
jQuery("#SelectElement").trigger("change"); <--- not works

我也试过了:

jQuery("#SelectElement option:containt('London')").attr("selected", "selected").change();

但是,如果我在控制台上尝试此代码,则可以正常运行。

连连呢?

2 个答案:

答案 0 :(得分:3)

我有同样的问题,据我所知,因为有一些叫做框架事件监听器的东西。你不能通过jquery从你的代码中触发!但解决方案是以这种方式触发事件:

$(selector)[0].dispatchEvent(new Event("eventName"))

答案 1 :(得分:2)

就我而言,

HTML

没用。

我必须像这样初始化事件:

var event = new CustomEvent('change');

第一个arg&#39;起泡&#39;应该是真的,所以事件应该在事件链中冒出来。

var evt = document.createEvent("HTMLEvents");
evt.initEvent("keyup", true, true);

来源: https://developer.mozilla.org/en-US/docs/Web/API/Event/initEvent