从jQuery调用content_script.js自定义事件?

时间:2016-05-06 00:12:44

标签: jquery google-chrome chromium

在我的content_script.js中,我正在处理Chrome扩展程序:

document.addEventListener("funcDoRequest", function (params)
{
    alert('From content_script');
});

在我的index.html网页中如何从jQuery调用此funcDoRequest?任何例子?我也需要将detail.x参数传递给它。

我可以在没有jQuery的情况下这样做,但我不希望这样:

<script>
    var event = new CustomEvent('funcDoRequest', { 'detail': { something: 'something' } });
    var go = function () { document.dispatchEvent(event); }
</script>
<a href="javascript:go();">Click me</a>

感谢。

1 个答案:

答案 0 :(得分:0)

可能的jQuery等效方法可以使用.click() <a>作为自定义事件,在.on()元素处设置"funcDoRequest"事件;以.trigger()作为第一个参数调用"funcDoRequest",数据对象{ something: "something" }作为第二个参数点击a元素;传递的数据对象可以在.on("funcDoRequest")处理程序中作为第二个参数params进行访问。还在event.preventDefault()点击处理程序添加了a

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<script>
  $(document).ready(function() {
    var doc = $(this); // `document`
    $("a").click(function(e) {
      e.preventDefault();
      doc.trigger("funcDoRequest", {
        "something": "something"
      })
    });
    // at `content_script.js`
    $(document).on("funcDoRequest", function(e, params) {
      console.log(e, params);
      alert(JSON.stringify(params))
    });
  })
</script>
<a href="#">Click me</a>
&#13;
&#13;
&#13;