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