2011-12-13 66 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; 
}