我正在使用两个不同的内容脚本构建一个 Safari 扩展。需要将一个脚本注入所有 http 页面(但不是 https 页面)。不管方案如何,另一个只会注入到 google.com 页面中。
为了实现这一点,我已设置Extension Website Access
为:
这应该意味着在高层次上,我的扩展中的内容脚本应该能够访问所有页面。
为了获得更细粒度的控制,我以编程方式将内容脚本注入到与我的模式匹配的 URL 中。
App = {
content: {
// Inject into unsecure pages.
whitelist: ['http://*/*'],
// But not into secure pages.
blackList: ['https://*/*'],
loc: safari.extension.baseURI + 'data/content.js'
},
results: {
// Inject this script into all google.com pages
whiteList: ['http://*.google.com/*', 'https://*.google.com/*'],
// Surely I don't need a blacklist if I specify a whitelist?
blacklist: undefined,
loc: safari.extension.baseURI + 'data/results.js',
}
};
// Inject the first content script.
safari.extension.addContentScriptFromURL(App.content.loc,
App.content.whitelist, App.content.blacklist, false);
// Inject the second content script.
safari.extension.addContentStyleSheetFromURL(App.results.cssLoc,
App.results.whitelist, App.results.blacklist, false);
问题是这两个脚本都被注入到所有页面中。好像我的白名单和黑名单什么都不做。我究竟做错了什么?