

Tout sur les thèmes (60 topics, 464 messages) Dernier message par Ashe, le 12/02 à 02:11:13 |
|
| Ashe inscrit le 15/12/2006 |
bah en fait regarde:
quand j'affiche la partie : document.getElementById('zone_nav_droite_identification').getElementsByTagName('a')[0].innerHTML = 'Log In'; tu es bien d'accord que le lien pour s'identifier est à l'adresse http://nomduforum.les-forums.com/?logout_ok donc cette partie du code s'appliquera a l'adresse ci dessu. cependant, apre identification l'adresse de la page change d'ou http://nomduforum.les-forums.com/?login_ok et admetton quand je place la partie de code restante associée aux liens profil, deconnection, etc... , cela ne fonctionne pas. en fait je ne peux qu'appliquer le script a une seule adresse |
|
| Babaorum adjoint inscrit le 22/04/2002 |
mais non, les adresses des liens n'ont rien à y voir, le lien c'est le lien, c'est tout. où vois-tu qu'on se préoccupe des adresses dans le code que je t'ai montré ? nulle part ! tu utilises les identifiants de style pour pointer vers les liens, pas leurs adresses.
tu peux changer dynamiquement l'adresse vers laquelle il pointe si tu veux, ça restera le même lien du point de vue du DOM et de Javascript. tu inventes des difficultés qui n'existent pas, ou alors je n'ai rien compris à ta question. si ça ne fonctionne pas, il y a une autre raison. "appliquer le script à une seule adresse" ![]() pas compris |
|
| Babaorum adjoint inscrit le 22/04/2002 |
par ailleurs le lien d'identification pointe vers cette adresse : http://demo.les-forums.com/login.cgi (exemple avec Démo)
de même le lien d'inscription pointe vers une autre adresse : http://gloups.les-forums.com/fiche_user.cgi le lien de déconnexion, lui, pointe ici : http://demo.les-forums.com/disconnect.cgi donc je ne comprends pas d'où tu sors http://nomduforum.les-forums.com/?logout_ok et http://nomduforum.les-forums.com/?login_ok ...? mais -je te le répète- les adresses des liens n'ont aucune incidence sur notre script, qui ne se préoccupe que de changer le texte qu'ils contiennent, en les repérant par leur identifiant (id="..." dans la balise HTML <A ...> ... </A> ) Message modifié le 05/02 à 00:40:39 par Babaorum. |
|
| Ashe inscrit le 15/12/2006 |
ouais lol je viens de me rendre compte de ma connerie en me relisant, je m'embrouyais tellement que j'en ai marqué des bétises.
enfin bon pour faire plus concret sa donne sa: mon script de base: <script type="text/javascript"> function translate() { document.getElementById('zone_nav_droite_deconnection').getElementsByTagName('a')[0].innerHTML = 'Log Off'; document.getElementById('zone_nav_droite_profil').getElementsByTagName('a')[0].innerHTML = 'Profile'; document.getElementById('zone_nav_droite_recherche').getElementsByTagName('a')[0].innerHTML = 'Search'; document.getElementById('zone_nav_droite_messagerie').getElementsByTagName('a')[0].innerHTML = 'Mesg'; document.getElementById('zone_nav_droite_liens').getElementsByTagName('a')[0].innerHTML = 'My links'; document.getElementById('zone_nav_droite_favoris').getElementsByTagName('a')[0].innerHTML = 'Favorites'; } </script> <body onload="translate()"> </body> jusque la ça va , MAIS (malheuresement il y a un mais >.<
après avoir ajouté cela : document.getElementById('zone_nav_droite_identification').getElementsByTagName('a')[0].innerHTML = 'Log In'; document.getElementById('zone_nav_droite_inscription').getElementsByTagName('a')[0].innerHTML = 'Register'; ![]() ![]()
ça donne sa en tout: <script type="text/javascript"> function translate() { document.getElementById('zone_nav_droite_identification').getElementsByTagName('a')[0].innerHTML = 'Log In'; document.getElementById('zone_nav_droite_inscription').getElementsByTagName('a')[0].innerHTML = 'Register'; document.getElementById('zone_nav_droite_deconnection').getElementsByTagName('a')[0].innerHTML = 'Log Off'; document.getElementById('zone_nav_droite_profil').getElementsByTagName('a')[0].innerHTML = 'Profile'; document.getElementById('zone_nav_droite_recherche').getElementsByTagName('a')[0].innerHTML = 'Search'; document.getElementById('zone_nav_droite_messagerie').getElementsByTagName('a')[0].innerHTML = 'Mesg'; document.getElementById('zone_nav_droite_liens').getElementsByTagName('a')[0].innerHTML = 'My links'; document.getElementById('zone_nav_droite_favoris').getElementsByTagName('a')[0].innerHTML = 'Favorites'; } </script> normalement cela devrait fonctionner ! or seules ces 2 valeurs sont exprimées: document.getElementById('zone_nav_droite_identification').getElementsByTagName('a')[0].innerHTML = 'Log In'; document.getElementById('zone_nav_droite_inscription').getElementsByTagName('a')[0].innerHTML = 'Register'; dans le cas contraire si je les place a la fin du script ce sont les autres valeur qui sont exprimées (profil etc...) exceptées identification et inscription. voyant cela et n'ayant pas compri mon erreur car mon script semble correct je me suis demandé d'ou cela pouvait venir donc j'ai fais un rapprochement ( cela dit mauvais ) avec les adressesMessage modifié le 05/02 à 01:22:38 par Ashe. |
|
| Twidi maire [...]I have looked in the mirror every morning and asked myself: "If today were the last day of my life, would I want to do what I am about to do today?" And whenever the answer has been "No" for too many days in a row, I know I need to change something."
- Steve Jobs - inscrit le 18/04/2001 |
Pour les liens qui ne sont pas toujours présents (c'est à dire presque tous), il faut changer document.getElementById('IDENTIFIANT_ELEMENT').getElementsByTagName('a')[0].innerHTML = 'TEXTE';par var el = document.getElementById('IDENTIFIANT_ELEMENT'); explication rapide: il est impossible de modifier un lien qui n'existe pas, donc le javascript génère une erreur et s'arrête, il faut donc, avant la modification, tester que le lien existe |
|
| Twidi maire [...]I have looked in the mirror every morning and asked myself: "If today were the last day of my life, would I want to do what I am about to do today?" And whenever the answer has been "No" for too many days in a row, I know I need to change something."
- Steve Jobs - inscrit le 18/04/2001 |
le mieux est de faire une fonction (codée spécifiquement pour la zone de navigation en haut à droite)
function traduc(id, text) { et de l'utiliser comme ça : traduc('inscription', 'Register');et ainsi de suite (attention, la partie "zone_nav_droite_" est indiquée dans la fonction, donc pas la peine de mettre cette partie lors de l'appel de la fonction. ) Message modifié le 05/02 à 01:29:02 par Twidi. |
|
| Babaorum adjoint inscrit le 22/04/2002 |
Ouaip, j'avais fait un truc du genre:
function translate() { Ca faisait tout le bloc à droite. |
|
| Twidi maire [...]I have looked in the mirror every morning and asked myself: "If today were the last day of my life, would I want to do what I am about to do today?" And whenever the answer has been "No" for too many days in a row, I know I need to change something."
- Steve Jobs - inscrit le 18/04/2001 |
bon je dis pu rien ![]() |
|
| Ashe inscrit le 15/12/2006 |
hum ah oui je comprend mieux pourquoi le code ne fonctionnait que partiellement
merci pour l'aide je vais pouvoir avancer maintenant |
|
| Babaorum adjoint inscrit le 22/04/2002 |
en fait tu peux automatiser encore mieux et encore plus trash, avec des tableaux anonymes et en spécifiant l'identifiant entièrement en littéral (ou alors des hackages de tableaux anonymes pour trier par "racine" d'identifiant puis par le bout spécifique de l'identifiant).
c'est vite fait, pfiouuuuu en revanche et même si j'ai utilisé les deux méthodes (getElementsByTagName('a')[0].innerHTML et firstChild.firstChild.nodeValue), je pense que la 2ème est plus économe en ressources mémoire pour le script, car on lui dit directement où aller au lieu d'initialiser un tableau pour une seule valeur. Que ce soient les éléments LI hébergeant les liens "Profil", "Déconnexion", etc ou les TR hébergeant les cellules des libellés de texte "Outils","Filtres,"Gestion"... on pointe toujours vers un conteneur(élément LI dans le 1er cas, TR dans le 2e), qui ne contient qu'un seul élément fils (élement A dans le 1er cas, TH dans le 2e), lequel contient comme seul élément fils le noeud texte qu'on veut remplacer. Ca me semble donc plus "pur" et plus classieux ![]() Message modifié le 05/02 à 01:49:16 par Babaorum. |
|
| Babaorum adjoint inscrit le 22/04/2002 |
Un truc du genre: var table_traduction=new Array( Avec ce genre de choses, tu ne touches pas au code tant que la structure HTML des pages du forum ne changent pas, tu ne fais que rajouter des lignes dans la déclaration du tableau de tableaux anonymes. ![]() Message modifié le 05/02 à 02:09:04 par Babaorum. |
|
| Ashe inscrit le 15/12/2006 |
oui mais donc si cela n'affecte rien pourquoi tu ecris sa o_O Message modifié le 05/02 à 02:18:17 par Ashe. |
|
| Babaorum adjoint inscrit le 22/04/2002 |
de quoi tu parles exactement, Ashe (pitié, sois plus clair, plus précis... on est 3 à participer, Twidi, toi et moi, et on a tous posté plusieurs messages ce soir... difficile de savoir à quoi tu fais référence; utilise les citations pour éclaircir tes références) |
|
| Ashe inscrit le 15/12/2006 |
tu dis
tu ne fais que rajouter des lignes dans la déclaration du tableau de tableaux anonymes. donc ton code n'agit sur rien et est donc inutile vu que la structure HTML du forul ne change pas |
|
| Babaorum adjoint inscrit le 22/04/2002 |
non, je ne vois pas comment tu déduis que mon code n'agit sur rien: si tu l'essaies, tu verras que ça fonctionne, je l'ai essayé.
là on parle de code Javascript, alors que je parlais du code HTML qui ne doit pas changer, celui généré par le serveur de les-forums et qui compose les pages des forums.
je disais simplement qu'avec ce type de code JS comme celui ci-dessus, tu n'as qu'à modifier les valeurs des variables pour ajouter de nouvelles règles de conversion et que tu ne touches pas au code qui agit réellement. il y a dans mon code JS deux parties: le code qui décrit (les variables) et le code qui agit: la bouche for()... mais les deux sont du code JS. une boucle applique le même code à toutes les variables que tu lui fournis, pour peu que tu respectes la structure des données (qui est assez simple: identifiant, texte, titre-popup dans des crochets carrés). Message modifié le 05/02 à 02:29:38 par Babaorum. |
|
| Ashe inscrit le 15/12/2006 |
que j'utilise la methode de twidi ou la tienne pour le code cela ne fonctionne pas pourtant il me semble que j'ai correctement agencé les balises scripts!
<script type="text/javascript"> function translate() { var identifiants=new Array( 'profil', 'deconnection', 'recherche', 'messagerie', 'inscription', 'identification', 'liens', 'favoris', 'utilisateurs', 'admin'); var nouv_textes=new Array( 'Profile', 'Log out', 'Search', 'P.M.', 'Sign in', 'Log in', 'Links', 'Favorites', 'Users', 'Settings'); var nouv_titres=new Array( 'See and change your profile (sig, avatar)', 'Log out not to let anything accessing your account on this computer', 'Find something on the board', 'Private messages between board members', 'Create your own account on the board', 'Access your board account', 'Web links that will follow you everywhere on the net', 'Your favorites topics', 'See the users list and manage them', 'Tweak all the settings of your board'); for(var n=0,identifiant; identifiant=identifiants[n]; n++) { if(document.getElementById('zone_nav_droite_'+identifiant)) { document.getElementById('zone_nav_droite_'+identifiant).getElementsByTagName('a')[0].innerHTML=nouv_ textes[n]; document.getElementById('zone_nav_droite_'+identifiant).getElementsByTagName('a')[0].setAttribute('t itle',nouv_titres[n]); } } var identifiants2=new Array('outils','filtres','gestion'); var nouv_textes2=new Array('Tools :','Filters :','Management :'); for(var n=0,identifiant; identifiant=identifiants2[n]; n++) { if(document.getElementById('ligne_nav_droite_'+identifiant)) { document.getElementById('ligne_nav_droite_'+identifiant).firstChild.firstChild.nodeValue=nouv_textes 2[n]; } } } </script> <body onload="translate()"> </body> rassure moi c'est correct non? |
|
| Ashe inscrit le 15/12/2006 |
alo? ![]() |
|
| Ashe inscrit le 15/12/2006 |
hum bizar jai implanté mon code correctement :
<script type="text/javascript"> function translate() { var identifiants=new Array( 'profil', 'deconnection', 'recherche', 'messagerie', 'inscription', 'identification', 'liens', 'favoris', 'utilisateurs', 'admin'); var nouv_textes=new Array( 'Profile', 'Log out', 'Search', 'P.M.', 'Sign in', 'Log in', 'Links', 'Favorites', 'Users', 'Settings'); var nouv_titres=new Array( 'See and change your profile (sig, avatar)', 'Log out not to let anything accessing your account on this computer', 'Find something on the board', 'Private messages between board members', 'Create your own account on the board', 'Access your board account', 'Web links that will follow you everywhere on the net', 'Your favorites topics', 'See the users list and manage them', 'Tweak all the settings of your board'); for(var n=0,identifiant; identifiant=identifiants[n]; n++) { if(document.getElementById('zone_nav_droite_'+identifiant)) { document.getElementById('zone_nav_droite_'+identifiant).getElementsByTagName('a')[0].innerHTML=nouv_ textes[n]; document.getElementById('zone_nav_droite_'+identifiant).getElementsByTagName('a')[0].setAttribute('t itle',nouv_titres[n]); } } var identifiants2=new Array('outils','filtres','gestion'); var nouv_textes2=new Array('Tools :','Filters :','Management :'); for(var n=0,identifiant; identifiant=identifiants2[n]; n++) { if(document.getElementById('ligne_nav_droite_'+identifiant)) { document.getElementById('ligne_nav_droite_'+identifiant).firstChild.firstChild.nodeValue=nouv_textes 2[n]; } } } </script> <body onload="translate()"> </body> avec dans la balise body : onload=translate() car quand je met onload="translate"() la balise body n'accepte pas les double quote " ou est mon erreur svp? je patoge alor que c'est bon ! j'ai compris comment sa fonctionnais j'ai tout agencé comme il faut et ça ne marche tjr pas -.- |
|
| Babaorum adjoint inscrit le 22/04/2002 |
ben creuse-toi un peu la tête, je ne peux pas tout faire à ta place Ashe... bon, mets des apostrophes simples... ' au lieu de "
sinon ce serait bien que, si erreur il y a, tu nous donnes les codes et les messages d'erreur... ça aide, car là tu nous demandes de déboguer "comme ça", à la volée. On est pas magiciens
par ailleurs tu ne dois pas mettre <body> ... </body> où que ce soit dans le code à intégrer, je te l'ai déjà expliqué, car la balise body existe déjà, dans chacune des pages web du forum... Message modifié le 11/02 à 10:36:26 par Babaorum. |
|
| Twidi maire Al Gore : Ce n'est pas comme si le lobby du pétrole avait trop d'influence à la Maison Blanche. Le problème est que le lobby du pétrole, c'est la Maison Blanche inscrit le 18/04/2001 |
et puis il y a des bouts de trucs seuls sur leur ligne, du style "2[n]", "itle"... mauvais copié collé ! |
|
| Ashe inscrit le 15/12/2006 |
c'est bon jai reussi
merci pour l'aide dsl je sais que vous n'etes pas magiciens mais vous etes des pros et moi pas xD c'est pour cela que je suis venu vous demander de l'aide merci a vous encore une fois
je ne pensai pas qu'un espace dans le script avait autant d'importance interressant ![]() Message modifié le 12/02 à 02:22:55 par Ashe. |
|
Vous ne pouvez pas ajouter de messages.
Forum gratuit proposé par
v 2.7 alpha
-
Un service
-
Page générée en 0,032 secondes le 08/08 à 20:42:33.