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匹配模式或如果有其他解決方案,那麼我的內容腳本將無法在任何頁面上運行?

+0

無論出於何種原因,SDK匹配圖案僅支持[單個通配符(星號)](https://github.com/mozilla/addon-sdk/blob/48e3fe484f9f0d3178cb827fd7c64ccf88700cb0/lib/sdk/util /match-pattern.js#L37)。使用@abraham回答中的正則表達式。 – nmaier

回答

2

match pattern支持正則表達式,所以這樣的事情應該工作。您可能需要稍微練習一下確切的語法。

["/.*f\?p\=.*/*", "/.*wwv_flow\.accept.*/"]