Curseur et click droit en javascrit
Fermé
P4board
Messages postés
33
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
9 août 2022
-
1 nov. 2007 à 17:04
quelqu'un - 28 févr. 2008 à 16:42
quelqu'un - 28 févr. 2008 à 16:42
A voir également:
- Curseur et click droit en javascrit
- Image libre de droit gratuite google - Guide
- Curseur souris disparu - Guide
- Auto mouse click - Télécharger - Divers Utilitaires
- Slash droit ✓ - Forum Programmation
- Au droit de la porte - Forum AutoCAD
5 réponses
P4board
Messages postés
33
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
9 août 2022
26
12 nov. 2007 à 11:47
12 nov. 2007 à 11:47
Bonjour,
Merci de toutes vos réponses, je n'en demandais pas tant... Comme j'aime bien parler tout seul, voila la suite de mon problème :
Pb #1 : Pas trouvé de solution mais bon c'est de la déco...
Pb #2 : J'ai contourné le pb en utilisant le 3ème bouton de la souris sous opera (event.button==3), ça marche avec une logitech relativement réscente (4-5 ans), mais pas avec ma vielle logitech favorite de 1994 qui pourtant a bien un troisième bouton configurable que j'ai fixé à "bouton du milieu". De plus je ne sais pas si les souris de Mac ont un deuxième bouton alors un troisième... Si quelqu'un sait passer au dessus du popup menu d'Opera....
Pb #3 : Opera toujours et encore...
Voila j'essaye tant bien que mal de rendre compatible mon site avec IE, Mozilla, Netscape et Opera. Pas facile, car chacun gère le Javascript à sa manière... Voici une gestion des tableaux quand même bizarre sous opera (7, 8 ou 9 c'est kif) :
Je crée un tableau :
<table width="100%" border="1">
<tr>
<td width="50%" id="1"> </td>
<td width="50%" id="2"> </td>
</tr>
</table>
Tout fonctionne correctement jusque là. Mais lorsque je veux redimensionner une cellule :
document.getElementById("1").style.width="10%";
document.getElementById("2").style.width="90%";
Opera ne veut rien savoir...
--------------------
Si je fait la même chose en pixels :
<table width="1000px" border="1">
<tr>
<td width="500px" id="1"> </td>
<td width="500px" id="2"> </td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("1").style.width="100px"; : rien ne se passe
document.getElementById("2").style.width="900px"; : la cellule de gauche se reduit un poil,mais pas jusqu'à 100px..
</scrpit>
-----------------------
Je code maintenant tout en JavaScript :
<table width="100%" border="1">
<tr>
<td width="" id="1"> </td>
<td width="" id="2"> </td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("1").style.width="50%";
document.getElementById("2").style.width="50%";
document.getElementById("1").style.width="10%";
document.getElementById("2").style.width="90%";
</script>
Les 2 cellules restent désespérément à 50%
-----------------------
En JavaScript et pixels :
<table width="1000px" border="1">
<tr>
<td width="" id="1"> </td>
<td width="" id="2"> </td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("1").style.width="500px";
document.getElementById("2").style.width="500px";
document.getElementById("1").style.width="100 px";
document.getElementById("2").style.width="900 px";
</script>
Là ö miracle ça fonctionne...
-----------------------
Je me dit donc chouette, je vais pouvoir affecter la largeur à une variable, car vous l'aurez compris le but est de dynamiser le tableau sinon ça n'a aucun sens.
<table width="1000px" id="0" border="1">
<tr>
<td width="" id="1"> </td>
<td width="" id="2"> </td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("1").style.width="500px";
document.getElementById("2").style.width="500px";
document.getElementById("1").style.width=document.getElementById("0").offsetWidth*10/100+"px";
document.getElementById("2").style.width=document.getElementById("0").offsetWidth*90/100+"px";
</script>
Et vlan ça bouge, mais pas des masses, en tout cas pas jusqu'à 100px...
-----------------------
Alors que si je le fais en direct :
<table width="1000px" id="0" border="1">
<tr>
<td width="" id="1"> </td>
<td width="" id="2"> </td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("1").style.width=document.getElementById("0").offsetWidth*10/100+"px";
document.getElementById("2").style.width=document.getElementById("0").offsetWidth*90/100+"px";
</script>
Ca fonctionne, mais impossible de redimensionner quoi que ce soit à moins de passer en affectation directe
document.getElementById("1").style.width="500px";
document.getElementById("2").style.width="500px";
-----------------------
Bien evidement tout cela (ça ne me semble quand même pas très compliqué) fonctionne sous IE, Mozilla et Netscape.
J'ai essayé des trucs du genre parseInt, virer +"px" ou rajouter ""+... mais rien à faire.
Vous me direz, utilise des calques... bien sûr dans ce cas ça fonctionne à peut près correctement, enfin il me semble, mais le placement des calques en absolue ne semble pas être géré de la même manière suivant chaque navigateur surtout avec Netscape...
<html>
<body>
<table width="100%" height=100% id="0" border="1">
<tr>
<td width="" id="1">
<div id="calque_1" style="position:absolute; width:50%; left:0px; top:0px; height:100%; z-index:1; border:1px solid #000000">
<div id="calque_2" style="position:absolute; width:50%; left:0px; top:0px; height:100%; z-index:1; border:1px solid #000000">
</td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("calque_1").style.width=document.getElementById("0").offsetWidth*10/100;
document.getElementById("calque_1").style.height=document.getElementById("0").offsetHeight;
document.getElementById("calque_2").style.width=document.getElementById("0").offsetWidth*90/100;
document.getElementById("calque_2").style.height=document.getElementById("0").offsetHeight;
document.getElementById("calque_2").style.left=document.getElementById("0").offsetWidth-document.getElementById("calque_2").offsetWidth;
</script>
</body>
</html>
Et puis cette façon d'afficher des trucs différents alors qu'on fait là même chose est assez surprenant chez Opera...
Bref un vrai casse tête. Si vous avez tout lu et tout compris et si y comprenez quelque chose...
Merci,
Olivier.
Merci de toutes vos réponses, je n'en demandais pas tant... Comme j'aime bien parler tout seul, voila la suite de mon problème :
Pb #1 : Pas trouvé de solution mais bon c'est de la déco...
Pb #2 : J'ai contourné le pb en utilisant le 3ème bouton de la souris sous opera (event.button==3), ça marche avec une logitech relativement réscente (4-5 ans), mais pas avec ma vielle logitech favorite de 1994 qui pourtant a bien un troisième bouton configurable que j'ai fixé à "bouton du milieu". De plus je ne sais pas si les souris de Mac ont un deuxième bouton alors un troisième... Si quelqu'un sait passer au dessus du popup menu d'Opera....
Pb #3 : Opera toujours et encore...
Voila j'essaye tant bien que mal de rendre compatible mon site avec IE, Mozilla, Netscape et Opera. Pas facile, car chacun gère le Javascript à sa manière... Voici une gestion des tableaux quand même bizarre sous opera (7, 8 ou 9 c'est kif) :
Je crée un tableau :
<table width="100%" border="1">
<tr>
<td width="50%" id="1"> </td>
<td width="50%" id="2"> </td>
</tr>
</table>
Tout fonctionne correctement jusque là. Mais lorsque je veux redimensionner une cellule :
document.getElementById("1").style.width="10%";
document.getElementById("2").style.width="90%";
Opera ne veut rien savoir...
--------------------
Si je fait la même chose en pixels :
<table width="1000px" border="1">
<tr>
<td width="500px" id="1"> </td>
<td width="500px" id="2"> </td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("1").style.width="100px"; : rien ne se passe
document.getElementById("2").style.width="900px"; : la cellule de gauche se reduit un poil,mais pas jusqu'à 100px..
</scrpit>
-----------------------
Je code maintenant tout en JavaScript :
<table width="100%" border="1">
<tr>
<td width="" id="1"> </td>
<td width="" id="2"> </td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("1").style.width="50%";
document.getElementById("2").style.width="50%";
document.getElementById("1").style.width="10%";
document.getElementById("2").style.width="90%";
</script>
Les 2 cellules restent désespérément à 50%
-----------------------
En JavaScript et pixels :
<table width="1000px" border="1">
<tr>
<td width="" id="1"> </td>
<td width="" id="2"> </td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("1").style.width="500px";
document.getElementById("2").style.width="500px";
document.getElementById("1").style.width="100 px";
document.getElementById("2").style.width="900 px";
</script>
Là ö miracle ça fonctionne...
-----------------------
Je me dit donc chouette, je vais pouvoir affecter la largeur à une variable, car vous l'aurez compris le but est de dynamiser le tableau sinon ça n'a aucun sens.
<table width="1000px" id="0" border="1">
<tr>
<td width="" id="1"> </td>
<td width="" id="2"> </td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("1").style.width="500px";
document.getElementById("2").style.width="500px";
document.getElementById("1").style.width=document.getElementById("0").offsetWidth*10/100+"px";
document.getElementById("2").style.width=document.getElementById("0").offsetWidth*90/100+"px";
</script>
Et vlan ça bouge, mais pas des masses, en tout cas pas jusqu'à 100px...
-----------------------
Alors que si je le fais en direct :
<table width="1000px" id="0" border="1">
<tr>
<td width="" id="1"> </td>
<td width="" id="2"> </td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("1").style.width=document.getElementById("0").offsetWidth*10/100+"px";
document.getElementById("2").style.width=document.getElementById("0").offsetWidth*90/100+"px";
</script>
Ca fonctionne, mais impossible de redimensionner quoi que ce soit à moins de passer en affectation directe
document.getElementById("1").style.width="500px";
document.getElementById("2").style.width="500px";
-----------------------
Bien evidement tout cela (ça ne me semble quand même pas très compliqué) fonctionne sous IE, Mozilla et Netscape.
J'ai essayé des trucs du genre parseInt, virer +"px" ou rajouter ""+... mais rien à faire.
Vous me direz, utilise des calques... bien sûr dans ce cas ça fonctionne à peut près correctement, enfin il me semble, mais le placement des calques en absolue ne semble pas être géré de la même manière suivant chaque navigateur surtout avec Netscape...
<html>
<body>
<table width="100%" height=100% id="0" border="1">
<tr>
<td width="" id="1">
<div id="calque_1" style="position:absolute; width:50%; left:0px; top:0px; height:100%; z-index:1; border:1px solid #000000">
<div id="calque_2" style="position:absolute; width:50%; left:0px; top:0px; height:100%; z-index:1; border:1px solid #000000">
</td>
</tr>
</table>
<script language="JavaScript">
document.getElementById("calque_1").style.width=document.getElementById("0").offsetWidth*10/100;
document.getElementById("calque_1").style.height=document.getElementById("0").offsetHeight;
document.getElementById("calque_2").style.width=document.getElementById("0").offsetWidth*90/100;
document.getElementById("calque_2").style.height=document.getElementById("0").offsetHeight;
document.getElementById("calque_2").style.left=document.getElementById("0").offsetWidth-document.getElementById("calque_2").offsetWidth;
</script>
</body>
</html>
Et puis cette façon d'afficher des trucs différents alors qu'on fait là même chose est assez surprenant chez Opera...
Bref un vrai casse tête. Si vous avez tout lu et tout compris et si y comprenez quelque chose...
Merci,
Olivier.
P4board
Messages postés
33
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
9 août 2022
26
15 nov. 2007 à 13:22
15 nov. 2007 à 13:22
Bon me revoici :
pour ¤1 : remplacer 'hand' par 'pointer' tout simplement ; tellement simple que personne ne m'a donné l'astuce...
Pour ¤2 : problème contourné avec le 3eme bouton, mais si il existe une solution...
Pour ¤3 : je me suis débrouillé avec les calques ; problème contourné donc, mais si vous connaissez une solution.
pour ¤1 : remplacer 'hand' par 'pointer' tout simplement ; tellement simple que personne ne m'a donné l'astuce...
Pour ¤2 : problème contourné avec le 3eme bouton, mais si il existe une solution...
Pour ¤3 : je me suis débrouillé avec les calques ; problème contourné donc, mais si vous connaissez une solution.
P4board
Messages postés
33
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
9 août 2022
26
16 nov. 2007 à 16:23
16 nov. 2007 à 16:23
Je vois ça, où alors ils gardent leur astuces bien précieusement au cas où on copierait. Du coup je me fait mes réponses... ça peut en aider d'autres...
Pour le #2 : utiliser le bouton droit de la souris sous opera :
aller dans Outils -> Préférences
Trouver (suivant les versions) et cocher la case "Activer le Javascript"
Aller dans Options Javascript et cocher la case "Permettre au script de recevoir les clics du bouton droit"
Voilou c'était pas plus compliqué que cela.
En plus en dessous une petite case "Ouvrir la console Javascript en cas d'erreur" qui donne tout plein d'infos quand elle est coché...
Ca a l'air bien puissant ce petit navigateur.
Cela m'a permis d'ouvrir mon site sur Opera 7, 8 et 9 pour me rendre compte que certaines fonctions ne marchent plus sous la version 9... un comble quand même ; et du boulot en perspective... Apparement une syntaxe plus reconnu.
Du coup j'ai également peur d'installer IE 7 ; il parait qu'il ont mis un de ces boxon là dedans et que plus rien ne fonctionne...
Allez il ne reste plus que le #3... Là je sèche.
Pour le #2 : utiliser le bouton droit de la souris sous opera :
aller dans Outils -> Préférences
Trouver (suivant les versions) et cocher la case "Activer le Javascript"
Aller dans Options Javascript et cocher la case "Permettre au script de recevoir les clics du bouton droit"
Voilou c'était pas plus compliqué que cela.
En plus en dessous une petite case "Ouvrir la console Javascript en cas d'erreur" qui donne tout plein d'infos quand elle est coché...
Ca a l'air bien puissant ce petit navigateur.
Cela m'a permis d'ouvrir mon site sur Opera 7, 8 et 9 pour me rendre compte que certaines fonctions ne marchent plus sous la version 9... un comble quand même ; et du boulot en perspective... Apparement une syntaxe plus reconnu.
Du coup j'ai également peur d'installer IE 7 ; il parait qu'il ont mis un de ces boxon là dedans et que plus rien ne fonctionne...
Allez il ne reste plus que le #3... Là je sèche.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui je sais ta surement laché l'affaire mais mieux vaut tard que jamais!!
Les feuilles de styles rien de mieux, elles sont la pour sa!!!!!!
donc tu crée une feuille de style ou tu la déclare en embedded.
Tu encadre tout ce qui a besoin d'être encadré par des div et les classes css correspondante.
Puis âpres, de la façon dont tu veux, tu appelles une fonction javascript qui va modifié la feuille de style elle meme et non le style de ton id (ta manière de faire est plutôt certifié système D pas W3c).
Je pense que tu comprend les 3/4 de se que je t'ai ecrit, il me reste plus qu'a te donner la solution javascript:
function modiftaille(taille){ //la taille n'est pas forcer d'etre en argument
var regles=new Array();
if (document.styleSheets[1].insertRule){
regles=document.styleSheets[1].cssRules; //mozilla and co
}else if (document.styleSheets[1].rules){
regles= document.styleSheets[1].rules; //IE4+ et un autre me rappelle plus le nom
}else{
return;
}
var x=taille+"px";
regles[9].style.width = x;
}
Ce que tu a besoin de savoir:
styleSheets[1] => 1 est le numero de ta feuille (si c la premiere a etre déclaré etc)
regles[9] => 9 est la position de ta classe dans al feuilel de style désigné ci-dessus
doc: http://www.quirksmode.org/dom/w3c_css.html#t12
je ne suis que de passage mon e-mail: mehdietaycine@hotmail.com
Je fournit de l'aide en JAVA (SE,EE), AJAX (ce qui implique javascript et xml), puis mais un niveau en dessous css et php
Les feuilles de styles rien de mieux, elles sont la pour sa!!!!!!
donc tu crée une feuille de style ou tu la déclare en embedded.
Tu encadre tout ce qui a besoin d'être encadré par des div et les classes css correspondante.
Puis âpres, de la façon dont tu veux, tu appelles une fonction javascript qui va modifié la feuille de style elle meme et non le style de ton id (ta manière de faire est plutôt certifié système D pas W3c).
Je pense que tu comprend les 3/4 de se que je t'ai ecrit, il me reste plus qu'a te donner la solution javascript:
function modiftaille(taille){ //la taille n'est pas forcer d'etre en argument
var regles=new Array();
if (document.styleSheets[1].insertRule){
regles=document.styleSheets[1].cssRules; //mozilla and co
}else if (document.styleSheets[1].rules){
regles= document.styleSheets[1].rules; //IE4+ et un autre me rappelle plus le nom
}else{
return;
}
var x=taille+"px";
regles[9].style.width = x;
}
Ce que tu a besoin de savoir:
styleSheets[1] => 1 est le numero de ta feuille (si c la premiere a etre déclaré etc)
regles[9] => 9 est la position de ta classe dans al feuilel de style désigné ci-dessus
doc: http://www.quirksmode.org/dom/w3c_css.html#t12
je ne suis que de passage mon e-mail: mehdietaycine@hotmail.com
Je fournit de l'aide en JAVA (SE,EE), AJAX (ce qui implique javascript et xml), puis mais un niveau en dessous css et php