0
需要從主代碼訪問html內容,以便我可以用另一個字符串替換某些字符串/單詞並顯示在網頁中。我試圖從主代碼向內容腳本發送字符串數組。然後我在內容腳本中使用jquery來獲取html內容。 (html的())。然後我用javascript替換方法替換了字符串,並返回了新的html內容加載到網頁中。但它沒有工作1需要一些幫助如何從addon(Mozilla Addon SDK)主代碼訪問和更改html?
需要從主代碼訪問html內容,以便我可以用另一個字符串替換某些字符串/單詞並顯示在網頁中。我試圖從主代碼向內容腳本發送字符串數組。然後我在內容腳本中使用jquery來獲取html內容。 (html的())。然後我用javascript替換方法替換了字符串,並返回了新的html內容加載到網頁中。但它沒有工作1需要一些幫助如何從addon(Mozilla Addon SDK)主代碼訪問和更改html?
串.replace()
方法只替換第一次出現,這種嘗試在您的腳本代碼來替換所有出現:
var h1 = h.replace(new RegExp(s, 'g'), 'FILTERED');
請檢查this answer更換更完整的治療所有,如果你的輸入有特殊字符或用戶輸入值。由於替換使用正則表達式進行操作,因此您必須小心輸入值,並在存在包含正則表達式元字符的機會時正確轉義它。
在什麼時候它不起作用? Web控制檯或瀏覽器控制檯中是否存在錯誤消息?請顯示將HTML重新放入頁面的代碼。你有沒有考慮一個GreaseMonkey腳本而不是一個完整的插件? –
mainaddoncode: var tabs = require(「sdk/tabs」); var self = require(「sdk/self」); var pageMod = require(「sdk/page-mod」); var str =「to」; pageMod.PageMod({ \t包括: 「*」, contentScriptWhen: 「就緒」, \t contentScriptFile:[self.data.url( 「jquery的-1.10.2.min.js」),self.data.url (「script.js」)], onAttach:function OnAttach(worker){ \t \t worker.port.emit(「a」,str); } }); – Ram
@YolandaRuiz腳本代碼: self.port.on( 「一」,功能(S1){ \t變種S = S1; \t VAR H = $( 「正文」)HTML(); \t變種H1。 \t H1 = h.replace(S, 「過濾」); \t H = H1; \t $( 「正文」)HTML(H); \t }); – Ram