我正在为 Mozilla Firefox 和 Google Chrome 开发一个浏览器扩展。该扩展为 Oracle APEX 提供了功能。因为应该只在运行 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 获取匹配模式,或者是否有任何其他解决方案使我的内容脚本不会在任何页面上运行?
最佳答案
match pattern支持正则表达式,所以像这样的东西应该可以工作。您可能需要稍微尝试一下确切的语法。
["/.*f\?p\=.*/*", "/.*wwv_flow\.accept.*/"]
关于javascript - Firefox Extension util/match-pattern 子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24525833/