如何防止在禁用/重新启用safari扩展时多次注入内容脚本



如果使用Safari,如果在同一会话中禁用并重新启用扩展,则最终会注入内容脚本的多个副本。

页面刷新后,一切恢复正常。Chrome有一个Safari似乎缺乏的"无效扩展上下文"的概念。

通过将内容脚本(script.js)添加到xcode中的Safari扩展应用程序中,在键SFSafariContentScript下进行注册。根据https://developer.apple.com/documentation/safariservices/safari_app_extensions/injecting_a_script_into_a_webpage?language=objc,内容脚本总是在加载扩展时注入的。如果第一次注射过,是否有办法防止再次注射?

我在网上做了很多研究,但找不到解决方案。非常感谢您的任何建议!

这是一种默认行为。如果网页有子框架,脚本将被注入到所有框架中。

但您可以通过检查其主框架来防止多次调用。

//sample function
function foo() 
{
if (window.top === window)  //main-frame only
{ 
//place code here.
}
}

相关内容

  • 没有找到相关文章

最新更新