2010-09-27 7 views
5

J'ai cette simple lignegetElementById problème dans Google Chrome

alert(window.parent.frames[0].document.getElementById('textToSearch').value); 

J'ai 2 cadres, d'abord avec un champ de texte avec id « textToSearch » Je veux obtenir la valeur du champ de texte dans le deuxième cadre La ligne ci-dessus est sur le fichier html de la deuxième image Je reçois cette erreur uniquement dans Google Chrome, dans IE ou FF fonctionne très bien.

Uncaught TypeError: Cannot call method 'getElementById' of undefined

Des idées?

Merci à l'avance

+0

Les deux cadres sur le même domaine? – Matchu

+0

oui, les deux cadres sont inclus dans une page d'index – tinti

+0

qu'est-ce que 'alert (window.parent.frames.length)' et 'alert (window.parent.frames [0] .toString())' vous donne? – JBRWilkinson

Répondre

4

Enfin je me dis que ce qui était le problème. J'essaie le code d'en haut sur Google Chrome sur un fichier local du système. En raison des paramètres de sécurité de Google Chrome, cette utilisation est impossible. Si je déplace tous les fichiers sur un serveur web cela va fonctionner comme un charme Merci à tous pour votre soutien, ce fil peut être fermé maintenant

+1

Vous êtes responsable de la fermeture du fil en marquant une réponse (la vôtre ou quelqu'un d'autre) en réponse. –

+0

ok, je vais accepter cette réponse demain ... comme la suggestion sur l'infobulle – tinti

3

Utilisation contentWindow.document au lieu de document:

var frame = window.parent.frames[0].contentWindow; 
alert(frame.document.getElementById('textToSearch').value); 

Vous pouvez aussi utiliser contentDocument la plupart des navigateurs, mais pas Internet Explorer 7 ou plus.

+0

Merci pour la réponse ... mais n'a pas fonctionné. Je reçois Impossible de lire la propriété 'document' de non défini. Si je veux voir ce qui est dans la variable 'frame' avec l'alerte, j'ai 'undefined' – tinti

+0

@tinti: c'est étrange. Il n'y a pas de propriété * document * pour un élément iframe dans Chrome, mais il existe des propriétés * contentWindow * et * contentDocument *. Si c'est pour trouver le cadre, le code que je vous ai donné ** devrait ** fonctionner. –

+0

Je ne sais pas si c'est un problème, mais j'utilise frame au lieu de iframe. – tinti