2017-09-18 7 views
0

h1の背景色をすべて赤色に変更しようとしています。私はこのコードを追加しましたpopup.htmlにリンクされている私のpopup.jsでchrome extension extension elementの色

chrome.tabs.executeScript(null, 
     {code:"document.getElementsByTagName('h1').style.backgroundColor='red';"}); 

それはdocument.bodyと正常に動作しますが、私はそれがgetelementbytagname

でどのように機能するかを作るには考えています

また、h1コンテナにテキストを追加したいと思います。

答えて

0

getElementsByTagName('h1')複数の結果が返されます。正確にはHTMLCollectionです。

.styleをコレクション自体に設定することはできません。最近のクロームバージョン(51+)で

、あなたはfor..ofと、それをループすることができます

let headers = document.getElementsByTagName('h1'); 
for (let header of headers) { 
    header.style.backgroundColor = 'red'; 
} 

headerノードにテキストを追加するには、例えば、標準のDOM操作メソッドを使用することができます.appendChild()

header.appendChild(document.createTextNode("Boo!")); 

それとも、あなたはその.textContentを操作することができます。

あなたのコードが複雑に成長するにつれ、あなたは専用の.jsファイルに入れてfileの代わりcodeexecuteScriptを呼び出す必要があります。

0
私はこのような何かを追加しました

chrome.tabs.executeScript(null, { 
    code: "for (var z=0; z < 7; z++) { var el = document.getElementsByTagName('h' + z); for (var i=0; i < el.length; i++) { el[i].style.color ='red'; el[i].innerHTML += '[H' + z + ']';} }" 

}); 

と、それはfinnalyの作品は:)今私はVARエルはそれがマークされることはありませんmultipe時間が存在するかどうかを確認する必要があります。

+0

注:「innerHTML」操作[有害と見なされます](https://stackoverflow.com/questions/11515383/why-is-element-innerhtml-bad-code) – Xan

+0

ウェブサイトでh1タグをマークするより良い方法はありますか? – michal

関連する問題