最近,我使用safari扩展转换器:safari将我的chrome扩展移植到safari。
但是,我发现我的setInterval调用在后台页面中只执行了一定的次数。当我为我的web扩展打开后台页面时,我尝试运行一个简单的间隔来查看结果:
当我对我的chrome扩展尝试相同的内容时,间隔将无限期地运行:
如果我尝试在Safari中为任意随机网页打开dev控制台后运行该间隔,则该间隔可以正常工作:
类似地,递归setTimeout函数在web扩展的后台页面中失败:
背景页中的递归setTimeout函数 在我的后台页面中递归设置超时函数的结果(之后停止)
我不知道为什么Safari的后台页面会出现计时器失败的原因。我的扩展在chrome/勇敢/firefox中运行得非常好。谢谢!
发布于 2022-09-14 13:48:32
当扩展未激活时,safari浏览器将停止该特定扩展的后台进程。
替代方法:您可以定期从内容脚本和消息背景中创建超时,以检查您的需求。
https://stackoverflow.com/questions/67961947
复制相似问题