2016-11-21 77 views
-1

我正在研究改變學校項目網頁上字母顏色的擴展程序。我做了它,所以它會改變顏色,但我面臨的問題是,它「corupts」一切是在標籤排除<script></script>標籤以及它們之間的所有內容JavaScript

之間
<script></script> 

因此,當一個頁面想要它不能因爲有一個HTML代碼加載腳本在裏面。

下面是JavaScript代碼我到目前爲止:

window.onload = function(){ 
 

 
var letters = ["b", "d", "a", "o"]; 
 
var results; 
 
var resultb; 
 
var colors = ["#b32400", "#006622", "#cc0099", "#0000ff"]; 
 
var re; 
 
    
 
for (x = 0; x < letters.length; x++) { 
 
    results = letters[x].fontcolor(colors[x]); 
 
    resultb = letters[x].toUpperCase().fontcolor(colors[x]); 
 

 
    res = new RegExp("(" + letters[x] + ")(?!([^<]+)?>)", "g"); 
 
    reb = new RegExp("(" + letters[x].toUpperCase() + ")(?!([^<]+)?>)", "g"); 
 

 
    $("body").children().each(function() { 
 
    $(this).html($(this).html().replace(res, results)); 
 
    $(this).html($(this).html().replace(reb, resultb)); 
 
    }); 
 
} 
 
}

+2

[託尼小馬(http://stackoverflow.com/questions/1732348/regex-match -open標籤 - 除了-XHTML-自足標籤/ 1732454#1732454)! –

+1

[液體疼痛!](http://stackoverflow.com/a/1732454/238884) – Malvolio

+0

@JaromandaX那麼該怎麼做呢? XML解析器? –

回答

0

文件名爲scriptinject:

var s = document.createElement('script'); 
s.src = chrome.extension.getURL('script.js'); 
s.onload = function() { 
    this.remove(); 
}; 
(document.head || document.documentElement).appendChild(s); 

添加 「的script.js」 中的manifest.json web_accessible_resources與您的代碼上面。

在清單:

"content_scripts": { 
    "matches": ["http://*"], 
    "js": ["scriptinject.js"] 
}, 
"web_accessible_resources": ["script.js"] 

的script.js包含代碼中使用HTML的正則表達式會召喚

+0

所以,如果我正確理解這一點,這將腳本本身注入到網頁中? –

+0

是的,它創建了一個與script.js代碼在 –

+0

所以我必須寫這個代碼到background.js文件嗎? –

相關問題