2011-12-13 65 views
0

我想寫一個Chrome擴展來修復一個網頁。我無法訪問更改網頁或我會。谷歌擴展到修復網頁

打破頁面的HTML元素沒有ID,但是有NAME。然而,看着JavaScript,它正在使用NAME進行多個document.getElementById()調用。這在IE中運行良好,但不適用於Chrome或Firefox。

我的想法是編寫一個Chrome擴展插入所需的元素ID。這可能嗎?

background.js:

var dateChange = document.getElementsByName('DateChange'); 
dateChange.id = 'DateChange'; 

mainpage.html:

<html> 
<head> 
<script> 
    function do_stuff() 
    { 
     var elem = document.getElementById('DateChange'); 
     // do some more stuff 
    } 
</script> 
</head> 
<body> 
<form name="myForm"> 
    <input type="hidden" name="DateChange" value="false" /> 
</form> 
</body> 
</html> 

回答

0

您應該能夠使用屬性選擇器如

input[name="DateChange"] { color: red } 

另請參見相對較新的document.querySelectordocument.querySelectorAll呼叫。

+0

但屬性選擇器可以更改元素的ID? input [name =「DateChange」] {id:「myId」} – rkyser

+0

不,您可以使用'querySelector'選擇元素並使用JS添加ID。 –

0

嘗試設置ID之前,我一直在做錯事。然而,我發現以下爲我的目的工作:

var myForm = document.getElementsByName('myForm')[0]; 
var elLength = myForm.length; 
for (i=0; i<elLength; i++) 
{ 
    myForm.elements[i].id = myForm.elements[i].name; 
}