2017-07-11 3 views
0

Je maintiens de nombreux anciens sites Web et systèmes de gestion de contenu dans mon nouveau travail et rencontre un problème avec un autre. Le site ASP utilise JavaScript et cette ligne a cessé aujourd'hui travailler (ou un peu plus tôt aujourd'hui que):"document.forms n'est pas une fonction" avec "document.forms (0)"

document.forms(0) 

Console ferait rapport Uncaught TypeError: document.forms is not a function. Après recherche sur Google, je trouve que je peux le remplacer par:

document.forms[0] 

et continuer à avancer, cependant, ce site Web et les fichiers sont jonchées de cette référence. Quelqu'un peut-il trouver à expliquer ce qui aurait pu se passer? Chrome, IE et Firefox ne fonctionnent pas, y avait-il une mise à jour pour les navigateurs ou JavaScript? Je n'arrive pas à trouver document.forms(0) dans mes recherches. Impair.

+0

Je ne pense pas que d'autres navigateurs aient jamais supporté cela. – Bergi

+1

Si le site ASP devait seulement fonctionner dans IE, je peux voir pourquoi ils l'auraient fait. Sinon, les crochets sont corrects et les parenthèses sont fausses. Il ne sera pas possible de résoudre ce problème pour Chrome/Firefox, etc. - les parenthèses sont utilisées pour l'invocation de fonction, pas pour l'accès au tableau. –

+0

Vous voudrez peut-être mettre vos modifications [comme réponse] (https://stackoverflow.com/help/self-answer) – Bergi

Répondre

1

Je vais poster la réponse que j'ai à ce jour et comme les commentaires mentionnent, ce n'est pas une norme pour tous les navigateurs, il fonctionne dans IE, mais en général rien d'autre:

document.forms(0) //IE only 

C'est la manière appropriée:

document.forms[0] //All browsers (including IE) 

j'ai pu trouver un article (Mozilla réseau de développeurs) qui fait référence aux ronds-supports (link) disant que document.forms(0) est IE-specific ways to access elements et document.forms[0] est ledix .

Pour confirmer, je l'ai fait quelques tests avec et a remarqué que toutes les versions de IE travaillaient, rien ne fonctionne, sauf pour la version Chrome 15 et 16 (deux premières versions que BrowserStack a sur leur système pour XP).

Utilisez le code suivant ou votre site Web ne sera IE compatible: document.forms[0]

Peut-être que mon client utilisait toujours IE et juste de passer à Chrome ou autre chose. Je ne l'ai pas encore confirmé, plus le site a du temps pour Google Analytics.