JavaScript - argument non valide IE8
J'ai un peu de JavaScript problème. Le code de travail dans l'Opéra et le navigateur Firefox mais pas avec Internet Explorer 8. Quelqu'un sait pourquoi?
function createbtn(object, inner) {
var hover = document.createElement("div");
hover.setAttribute("class", "myarea");
if (inner) {
hover.style.width = object.width - 16 + "px";
hover.style.height = object.height - 16 + "px";
hover.style.top = getposy(object) + "px";
hover.style.left = getposx(object) + "px";
} else {
hover.style.width = object.width + "px";
hover.style.height = object.height + "px";
hover.style.top = getposy(object) - 8 + "px";
hover.style.left = getposx(object) - 8 + "px";
}
}
Je suis en train d'apprendre le Javascript. Tous les commentaires de bienvenue.
Simon
qu'est-ce que
pouvez-vous mettre ur plein de code dans un jsfiddle.net démo?
Si vous utilisez les outils de développement (F12), vous pouvez vérifier que le mode de rendu d'IE 8 est. Vous pouvez poster ce que c'est? Je suis soupçonnant qu'il est en Mode Quirks.
Vous devriez cache la
Vérifier le retour de vous getposx, getposy, ils ne sont probablement pas le retour d'un certain nombre
getposx
et getposy
?pouvez-vous mettre ur plein de code dans un jsfiddle.net démo?
Si vous utilisez les outils de développement (F12), vous pouvez vérifier que le mode de rendu d'IE 8 est. Vous pouvez poster ce que c'est? Je suis soupçonnant qu'il est en Mode Quirks.
Vous devriez cache la
hover.style
objet à l'intérieur d'une variable (à la fois pour réduire la redondance et de booster les performances)...Vérifier le retour de vous getposx, getposy, ils ne sont probablement pas le retour d'un certain nombre
OriginalL'auteur Simon | 2011-06-29
Vous devez vous connecter pour publier un commentaire.
Si
object.width
de moins de 16alors ce sera de produire une chaîne avec un signe négatif à l'avant, ce qui est illégal puisque les largeurs doivent être non négatif.
Vous pouvez résoudre ce problème en disant
et de même pour la hauteur.
De nombreux navigateurs ignorent contenu est incorrect, mais c'est à dire dans certains modes est plus stricte, de sorte que vous êtes probablement juste obtenir de l'échec silencieux dans les autres.
Êtes-vous sûr que
getposy
etgetposx
ne sont pas de retour NaN?Je ne suis pas sûr. Pour
hover.style.top = getposy(object) + "px
"; la IE8 débogueur dit juste un Argument non Valideet qu'est-ce que l'argumentation? Qu'est-ce que l'expression
getposy(object) + "px"
évaluer dans le débogueur?Elle retourne NaN. Ce que j'ai besoin de l'archive est d'obtenir la position de l'image. C'est ce que j'ai jusqu'à présent: jsfiddle.net/AT825 Comment le faire fonctionner avec IE8 ?
OriginalL'auteur Mike Samuel
Je suppose que ça a à voir avec
hover.setAttribute("class", "myarea");
. Si IE 8 est en cours d'exécution dans IE 7 ou inférieur de la Mode cela ne fonctionnera pas. Ensuite, vous devez utiliserhover.className = 'myarea'
(pris en charge par tous les navigateurs).http://msdn.microsoft.com/en-us/library/ms536739%28v=vs.85%29.aspx
Vérifier le mode de IE est en cours d'exécution.
OriginalL'auteur Saxoier