Forums d'assistance et de discussion sur les logiciels produits par Mozilla ou créés à partir des technologies Mozilla. Ce site ne dépend pas de la fondation Mozilla et est maintenu par un collectif de bénévoles.
HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Est ce que quelqu'un sait pour quoi ces 2 fonctions destinées à calculer les coords souris par rapport à un élément (et non une page entière) puis les afficher dans 2 inputs X et Y ne veulent rien savoir avec Firefox 1.5 et sont nickel avec IE ?
Note: "layer_transp1" est l'ID de l'élèment en question
function twPositionRelativeFixe(evt) {
var nOffsetX;
var nOffsetY;
evt = (evt) ? evt : ((window.event) ? window.event : "");
if (evt) {
if (document.all) {
nOffsetX = evt.offsetX;
nOffsetY = evt.offsetY;
}
else if (document.getElementById) {
nOffsetX = (evt.clientX - document.getElementById("layer_transp1").offsetLeft);
nOffsetY = (evt.clientY - document.getElementById("layer_transp1").offsetTop);
}
}
document.getElementById("X1").innerText = nOffsetX;
document.getElementById("Y1").innerText = nOffsetY;
//note: j'ai tenté innerHTML, c'est pas mieux sur FX mais ça plante IE
}
function twInit() {
var oImage = document.getElementById("layer_transp1")
if (oImage) {
oImage.onmousedown = twPositionRelativeFixe
}
}
Si quelqu'un voit le truc, je veux bien sa lumière. Merci.
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Vu la pression du marché, document.all a été partiellement implémenté dans Firefox, donc à mon avis FF ne voit jamais le "else if", il faudrait donc tester d'une autre manière à mon avis.
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.5) Gecko/20060731 Ubuntu/dapper-security Firefox/1.5.0.5
Mes opinions n'engagent que moi et pas mon employeur
Administrateur technique bénévole
Vu la pression du marché, document.all a été partiellement implémenté dans Firefox, donc à mon avis FF ne voit jamais le "else if", il faudrait donc tester d'une autre manière à mon avis.
Heu mais pas du tout, justement pas quand il est utilisé sans paramètre pour une soi-disant détection de navigateur.
renaud63 : est-ce que tu as essayé de parsemer ton code d'alert() ? Est-ce que l'évènement se déclenche bien, est-ce que tu entres bien dans chaque bloc if, est-ce que ça fonctionne pas mieux avec onclick plutôt que onmousedown, etc. ?
Par ailleurs, tu dis que X1 et Y1 sont des input, pourquoi ne pas utiliser value plutôt que innerText ?
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Merci de vos réponses. Benoit, je vais essayer de mettre des alert...Quant à value, ce serait mieux accepté que innerText ? D'autant que je ne savais pas qu'on pouvait utiliser value pour "écrire" dans un élément...
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
if( typeof(evt.offsetX) != 'undefined' ) {
nOffsetX = evt.offsetX;
nOffsetY = evt.offsetY;
}
else {
// le code pour obtenir l'équivalent dans Firefox et autres navigateurs n'implémentant pas les offsetX et offsetY
}
tout simplement.
À titre informatif, offsetX et offsetY ne font pas partie du DOM du w3c. Tu as un équivalent dans les gecko-like avec layerX et layerY (tout aussi non-standard), mais seulement si la boîte concernée est en position absolue ou fixe.
innerText est spécifique à internet explorer. Utilise plutôt value, comme l’a dit benoit.
« La vie d’un geek est un combat perpétuel contre l’imperfection »
Merci bobe, c'est cool, ça fonctionne très bien avec IE, mais pas avec FF qui affiche (avec value) indefined....Donc quel est le else ? Et si FF n'interprète pas offsetX et Y, que dois je écrire ?
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Yeah ! merci pour ces bonnes pistes ! j'ai trouvé, il suffisait de rajouter une position relative à mon div "layer_transp1" et le tour est joué, ça fonctionne sur les 2 navigs...oufffffffffffff....
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)