2009-08-17 4 views
0

Je suis en train de tomber dans un échec impair. Il semble que si j'ai à la fois un attribut ID et NAME sur un élément d'ancrage, document.getElementById échoue. Si je supprime le nom, cela fonctionne. Je vois cela dans Firefox 3.5 (dernière version) mais je n'ai pas encore vérifié les autres navigateurs.Javascript - getElementById échoue si l'ancre a également un attribut de nom

Est-ce un bug ou intentionnel?

+2

Impossible de reproduire. Presque certainement quelque chose d'autre changement que vous avez fait en même temps. –

+0

Peut-être qu'il y a eu une collision entre l'étiquette de nom retirée et une autre? – Zed

+0

La seule fois où j'ai vu quelque chose comme ça est dans IE - il ne fait pas de distinction entre les attributs name/id donc getElementById renvoie des choses auxquelles vous ne vous attendez pas en cas de collision. – Pat

Répondre

4

Je n'ai jamais entendu parler d'un tel bug, j'ai donc essayé de le reproduire et j'ai échoué. Cela suggère que vous avez mal diagnostiqué le problème, ou du moins n'avez pas fourni suffisamment d'informations à ce sujet.

J'ai testé avec Firefox 3.5 et le code suivant.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 
<title>Test of getElementById with named anchors</title> 
<h1>Test of getElementById with named anchors</h1> 

<h2><a name="one" id="one">First section</a></h2> 
<p>The quick brown fox</p> 

<h2><a name="two" id="second">Second section</a></h2> 
<p>The quick brown fox</p> 

<script type="text/javascript">  
if (document.getElementById('one')) { 
     document.write("<p>First section found - id matches name<\/p>"); 
} 

if (document.getElementById('second')) { 
     document.write("<p>Second section found - id does not match name<\/p>"); 
} 
</script> 
+0

même, je ne pouvais pas le reproduire sur mon firefox 3.5.2. : \ – codingbear

+0

Merci d'avoir testé les gars. Je n'ai aucune idée de ce qui le provoque en ce moment, mais si je reçois un peu de temps dans le futur, je vais enquêter. Je veux savoir si c'est mon code en quelque sorte, ou un cas de bord étrange que je n'ai pas pu décrire complètement. – Geuis

Questions connexes