javascript – 有条件地将内容脚本加载到Safari扩展中,如FF / Chrome中?
作者:互联网
我正在为Chrome,Firefox和Linux编写一个相当复杂的浏览器扩展程序.苹果浏览器.
在Chrome& Firefox,我可以根据URL匹配指定将哪些内容脚本注入到哪些站点.
Safari似乎没有提供任何此类(细粒度)功能 – 它们只允许所有站点使用一个白名单/黑名单.
有没有办法做到这一点?如果没有,我如何有条件地加载Javascript文件? (记住我不能将它们添加到DOM中).
我试过yepnope,但它附加到DOM.
注意:我不想在实际文件中添加逻辑,因为它们本质上是在扩展中重复的库代码.
解决方法:
safari.extension.addContentScript和safari.extension.addContentScriptFromURL允许您以编程方式注入脚本.您可以在全局页面,扩展名弹出窗口或扩展栏中使用这些方法.对于这两种方法,参数是:
>要注入的脚本(分别作为字符串或URL),
> URL模式的白名单,以匹配注入脚本的页面,
>排除页面的黑名单,和
>一个布尔值,用于是否将脚本作为结束脚本(或者作为启动脚本)注入.
有关详细信息,请参阅Safari Extensions Reference中的this page.
请注意,白名单和黑名单都使用与UNIX通配符相似(但不完全相同)的URL模式格式,并且不如常规表达式那么强大.这种模式格式在this page的底部描述.
标签:javascript,browser,safari,safari-extension,content-script 来源: https://codeday.me/bug/20190715/1469943.html