J'utilise la bibliothèque javascript Prototype (et script.aculo.us) - puisque c'est ce qui est livré avec Rails "en standard" - et ayant un problème avec ce qui suit snippet:Javascript Prototype .visible() méthode ne fonctionnant pas dans Internet Explorer
function show_hide_selects()
{
chkbox = document.getElementById('game_random_select')
seldiv = document.getElementById('card_selects')
if (chkbox.checked && seldiv.visible())
{
Effect.BlindUp('card_selects', {duration: 0.5})
Effect.BlindDown('random_options', {duration: 0.5})
}
else if (!chkbox.checked && !seldiv.visible())
{
Effect.BlindUp('random_options', {duration: 0.5})
Effect.BlindDown('card_selects', {duration: 0.75})
}
}
Cet extrait est tiré onClick
pour la case « game_random_select » qui contrôle si l'utilisateur veut spécifier une liste de cartes-noms, ou laisser le serveur pour faire un choix aléatoire. Il doit masquer l'ensemble non pertinent des éléments de formulaire et afficher l'ensemble pertinent.
Cela fonctionne très bien dans FireFox, mais ne fonctionne pas dans Internet Explorer (testé IE 8). Il génère une erreur "L'objet ne supporte pas cette propriété ou méthode" sur l'une des lignes if-test; l'utilisation du débogueur JS indique que c'est seldiv.visible()
qui ne fonctionne pas.
Comment puis-je détecter la visibilité de l'élément dans IE - sûrement Prototype devrait être complètement compatible avec IE? Ou je ne serai jamais capable de le gérer avec Prototype, et je devrais passer à jQuery - ce qui serait évidemment Effort, car je devrai aussi obtenir Rails pour se conformer.
Pouvez-vous également afficher le code HTML? –