1

我最近使用 safari 网络扩展转换器将我的 chrome 扩展移植到 safari:https ://developer.apple.com/documentation/safariservices/safari_web_extensions/converting_a_web_extension_for_safari 。

但是,我发现我的 setInterval 调用仅在后台页面中执行了一定次数。当我打开我的网络扩展的背景页面时,我尝试运行一个简单的间隔来查看结果:

Safari Web 扩展背景页面在运行设定次数后间隔卡住

当我为我的 chrome web 扩展尝试同样的事情时,间隔无限期地运行:

间隔连续运行的 Chrome Web 扩展后台页面

如果我在 Safari 中打开任何随机网页的开发控制台后尝试运行间隔,则间隔可以正常工作:

间隔连续运行的 Safari 内容页面

同样,递归 setTimeout 函数在 Web 扩展的后台页面中失败:

我的后台页面中的递归 setTimeout 函数我的后台页面 中递归设置超时函数的结果(之后停止)

我不确定为什么计时器可能会在 Safari 的后台页面中失败。我的扩展在 chrome/brave/firefox 中运行良好。谢谢!

4

0 回答 0