等待执行另一个事件处理程序之前的事件处理程序

问题描述 投票:0回答:1

我正在编写Firefox浏览器扩展程序,并且在如何从后台脚本发送消息之前一直等待内容脚本加载。这是我要实现的顺序:

  1. 用户单击上下文菜单项(单击处理程序在后台脚本中)
  2. 背景脚本创建新选项卡
  3. 内容脚本在新选项卡中完全加载
  4. 背景脚本将消息(带有数据)发送到内容脚本
  5. 内容脚本使用数据

显然,需要加载内容脚本才能使步骤4正常工作;否则,该消息将不会被接收。

我看过以前的类似问题,但是大多数答案都是错误的(它们将事件侦听器方法包装在Promise中,导致侦听器过多或Promises过多),或者它们似乎不适用于我的情况(这些答案通过将一个回调放在另一个回调中而完全解决了这个问题;这在这里不起作用)。

到目前为止,我所做的就是让内容脚本准备就绪后发送一条消息,并且可以正常工作,但是我仍然不确定如何让点击处理程序(来自第1步)等待来自内容的消息脚本(假设的步骤3.5)。据我所知,除非我有办法在点击处理程序中接收消息,否则我认为必须在点击处理程序之外定义消息处理程序。

是否有理想的方法来处理此问题?

我正在编写Firefox浏览器扩展程序,并且在如何从后台脚本发送消息之前一直等待内容脚本加载。这是我要实现的顺序:...

javascript javascript-events firefox-webextensions
1个回答
0
投票

我仍然认为应许是前进的方向……遵循这些原则:

© www.soinside.com 2019 - 2024. All rights reserved.