代码之家  ›  专栏  ›  技术社区  ›  Bing

Chrome扩展在网页的本机函数调用上注入回调?

  •  0
  • Bing  · 技术社区  · 2 年前

    我有一个Chrome扩展,它运行在一个专用的域上并操纵DOM。(这里的一切都是犹太的:用户有意为这个特定的网站安装它,甚至网站所有者也知道/支持这个扩展,但他们无法轻易更改它的代码。)

    一个页面通过AJAX加载内容,并通过轮询AJAX调用每隔一分钟左右刷新一个给定的页面。有一个特定的函数UpdatePageComplete(),他们在AJAX同步结束时调用它。我需要该函数来调用我的Chrome扩展函数之一,这样我就可以操作新数据(例如:添加 <a href='tel:' 任何电话号码的包装或具有特定内容的元素的背景颜色)。

    不过,我不知道如何将自己的回调注入到它们的本机函数中。这可能吗?如果是,我应该在哪里寻找?

    1 回复  |  直到 2 年前
        1
  •  0
  •   Julianna    2 年前

    我过去也做过类似的事情。您不能将自己的回调插入到他们的代码中,但您可以:

    1. 创建一个全局函数供它们调用(inject window.mySpecialFn = () => {...} )
    2. 在主体上添加一个自定义事件侦听器,并让它们的代码分派该自定义事件。