Firefox 扩展是为每个选项卡运行一次,还是在打开时运行一次?这意味着当您打开 Firefox 时,它会运行并继续运行吗?这将允许人们从一页获取信息并自动填充到另一页中。
我希望获得一些有关类似操作如何工作的信息(从一个选项卡保存信息并在另一个选项卡上自动填充)。
虽然距离你发帖已经有一段时间了...
您问了两个问题。
后台脚本是扩展程序保留大部分长期状态的地方,并且可能完成大部分处理,独立于任何或所有特定选项卡。当然,根据要实现的目标,不同的扩展可能会做不同的事情。后台脚本(如果有)在扩展程序加载时运行,通常是在浏览器启动时运行。
内容脚本何时在每个选项卡中运行?
内容脚本可以按照
content_scripts
清单键中的指定加载(请参阅 content_scripts - Mozilla | MDN),但也可以从后台脚本注入。默认情况下,内容脚本在页面/选项卡“完成”(所有资源已加载 - 图像、脚本和样式)时运行,但它们可以在“加载”(HTML 加载时/之前)或“交互”(HTML 加载时/之前)运行(当 HTML 完成加载时,但在其他所有内容加载之前)。
脚本(所有类型)通常是事件驱动的。它们在加载时可能会执行一些初始化,但随后它们会变得空闲并等待某些事情发生。有些脚本可能会在等待时卸载以释放内存。
两个选项卡如何在它们之间传递信息?
内容脚本(选项卡)通常通过发送 JSON 消息与后台脚本进行通信。如果两个选项卡需要在它们之间进行通信,它们可能会通过后台脚本来回传递消息来完成。设计师需要根据目标找出时间和原因。