我正在编写Firefox浏览器扩展程序,并且在如何从后台脚本发送消息之前一直等待内容脚本加载。这是我要实现的顺序:
显然,需要加载内容脚本才能使步骤4正常工作;否则,该消息将不会被接收。
我看过以前的类似问题,但是大多数答案都是错误的(它们将事件侦听器方法包装在Promise中,导致侦听器过多或Promises过多),或者它们似乎不适用于我的情况(这些答案通过将一个回调放在另一个回调中而完全解决了这个问题;这在这里不起作用)。
到目前为止,我所做的就是让内容脚本准备就绪后发送一条消息,并且可以正常工作,但是我仍然不确定如何让点击处理程序(来自第1步)等待来自内容的消息脚本(假设的步骤3.5)。据我所知,除非我有办法在点击处理程序中接收消息,否则我认为必须在点击处理程序之外定义消息处理程序。
是否有理想的方法来处理此问题?
我正在编写Firefox浏览器扩展程序,并且在如何从后台脚本发送消息之前一直等待内容脚本加载。这是我要实现的顺序:...
我仍然认为应许是前进的方向……遵循这些原则: