我正在为Mozilla Firefox和Google Chrome开发浏览器扩展程序。该扩展为Oracle APEX提供了功能。因为is应该只在运行Oracle APEX的页面上运行,所以我在子目录和参数中识别出具有匹配模式的页面。对于Chrome,我很容易将其添加到 manifest.json
"content_scripts": [{
"matches": ["*://*/*f?p=*", "*://*/*wwv_flow.accept*"],
"js": ["content_script.js"],
"run_at": "document_end"
}]
但是,如果我在Firefox中使用 main.js 中的PageMod API尝试相同的操作,我无法获得任何匹配,我会尝试各种组合:
main.js
pageMod.PageMod({
include: ["*://*/*f?p=*", "*://*/*wwv_flow.accept*"],
contentScriptFile: data.url("content_script.js"),
contentScriptWhen: "end",
现在我在任何页面上运行Firefox中的content_script并使用Javascript匹配功能检查URL,如果不匹配我立即返回
content_script.js
var url = unsafeWindow.location.href;
if (url.match(new RegExp("f?p=")) || url.match(new RegExp("wwv_flow.accept")))
我的问题是,是否可以获得PageMOD API的匹配模式,或者是否有任何其他解决方案,以便我的内容脚本不会在任何页面上运行?
答案 0 :(得分:2)
match pattern支持正则表达式,所以这样的东西应该有效。您可能需要稍微使用确切的语法。
["/.*f\?p\=.*/*", "/.*wwv_flow\.accept.*/"]