1
我正在为Mozilla Firefox和Google Chrome开发浏览器扩展。该扩展提供了Oracle APEX的功能。由于is只能在运行Oracle APEX的页面上运行,因此我在子目录和参数中标识具有匹配模式的页面。这是很容易为Chrome,我加入这个我的manifest.jsonFirefox扩展util/match-pattern子目录
"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匹配模式或如果有其他解决方案,那么我的内容脚本将无法在任何页面上运行?
无论出于何种原因,SDK匹配图案仅支持[单个通配符(星号)](https://github.com/mozilla/addon-sdk/blob/48e3fe484f9f0d3178cb827fd7c64ccf88700cb0/lib/sdk/util /match-pattern.js#L37)。使用@abraham回答中的正则表达式。 – nmaier