Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2012, 12h22   #21
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 786
Points : 35 786
Citation:
Envoyé par Willpower
Je suis nul en RegExp, donc ma réponse est à prendre avec des pincettes.
Si, ta réponse est juste

A un détail près :
Citation:
"lien[i]" ne renvoit pas un "string" mais un objet.
c'est particulier pour les liens qui renvoient en fait l'adresse correspondante :
Code :
alert(document.getElementsByTagName('a')[0]);
(mais bon, ça reste néanmoins un objet )
Code :
alert(typeof document.getElementsByTagName('a')[0]);
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 12h44   #22
Membre régulier
 
Inscription : février 2007
Messages : 483
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 483
Points : 75
Points : 75
Oui Merci on rentre bien dans le if maintenant.
Mais ma fonction ne fonctionne pas !
Elle est dans le <head> et est appelée avec <body onLoad

Ce n'est pas dans ce cas qu'il faut mettre des document.write au lieu de innerHTML
Code :
document.getElementByTagName(lien[i].href).innerHTML = 'http:// www.ma_nouvelle_adresse.com/'+partie[1];
Mister Paul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 13h00   #23
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 786
Points : 35 786
Citation:
Ce n'est pas dans ce cas qu'il faut mettre des document.write au lieu de innerHTML
Non !
Le problème ne vient pas de innerHTML ou de document.write() (au passage, tu devrais oublier cette instruction, elle est fortement déconseillée) mais du fait que tu ne comprends pas ce que tu écris...
Code :
document.getElementByTagName
C'est getElementsByTagName avec un "s" car cette instruction renvoie une collection d'éléments dont le nom de balise correspond à l'argument passé en paramètre.
Code :
document.getElementByTagName(lien[i].href)
du coup, là, tu recherches une balise correspondant au contenu du lien d'une balise <a>...
Code :
document.getElementByTagName(lien[i].href).innerHTML
et maintenant, tu veux affecter une URL à cette balise imaginaire...

Commence par le commencement et apprends les bases de JavaScript, ça ne sera pas inutile
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 16h41   #24
Membre régulier
 
Inscription : février 2007
Messages : 483
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 483
Points : 75
Points : 75
Je galère mais je m'accroche docteur…
j'ai clarifié la fonction (Merci à vous) et n'y ai plus de problème que pour remplacer les valeurs du lien (mais la valeur de remplacement est bonne… ouf enfin)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript">
<!--
	function changeLien()
	{ 	
		var i;
		var lien = document.getElementsByTagName('a');		
		for (i=0; i<lien.length; i++) {
			if (lien[i].href.match(/(.mp4)$/gi)){	
				document.getElemenstByTagName(a[i].href).innerHTML = 'http://www.nouveau_site.com/'+partie[3];				
			}
		}
	}
//-->
</script>
Citation:
Envoyé par Bovino
(au passage, tu devrais oublier cette instruction, elle est fortement déconseillée)
Aussi, j'ai donc essayé de remplacer mes document.write par des innerHTML (j'ai un javascript dans le <head> qui charge telle ou telle .css suivant que la page est chargée depuis un smartphone ou non.) mais ça ne veut pas fonctionner...
Code :
document.write('<link rel="stylesheet" type="text/css" href="styles_smartphone.css">');
remplacé par
Code :
document.body.innerHTML += <link rel="stylesheet" type="text/css" href="stylessmartphones.css">;
Mister Paul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 18h57   #25
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
pourquoi ne pas utiliser la collection document.links qui regroupe tous les liens d'une page ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
// recup collection des liens de la page mise en place par les navigateurs
var oLien = document.links,
    i, nbLien,
    tRecup,
    sDomain = "http://www.developpez.net/";
 
// boucle sur les liens
for( i = 0, nbLien = oLien.length; i < nbLien; i++){
  // décompose l'adresse pour récup. du nom du fichier
  tRecup = oLien[i].href.split('/');
  // affectation new adressee
  oLien[i].href = sDomain + tRecup[tRecup.length-1];
}
ou encore pour la boucle, plus rapide(?)
Code :
1
2
3
4
for( i = 0, nbLien = oLien.length; i < nbLien; i++){
  //  avec pathname en supprimant le / de début
  oLien[i].href = sDomain + oLien[i].pathname.replace('/', '');
}
il reste bien sûr à intégrer le test pour autoriser la modif.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/02/2012, 00h04   #26
Membre régulier
 
Inscription : février 2007
Messages : 483
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 483
Points : 75
Points : 75

En plus avec cette soluce pas besoin des innerHTML que je n'arrive pas encore à utiliser (même pour charger mes css…) !

Merci
Mister Paul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 20h27   #27
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Citation:
Envoyé par Mister Paul Voir le message
En plus avec cette soluce pas besoin des innerHTML que je n'arrive pas encore à utiliser (même pour charger mes css…) !
Je ne saurais que citer un ancien dicton chinois, période MING me semble-t-il !
Citation:
Avant d'utiliser un objet, apprend à connaître ses propriétés pour savoir ce que tu peux en faire.
et c'est en substance ce que t'a écrit Bovino
Citation:
Commence par le commencement et apprends les bases de JavaScript, ça ne sera pas inutile
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/02/2012, 21h58   #28
Membre régulier
 
Inscription : février 2007
Messages : 483
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 483
Points : 75
Points : 75


Merci pour votre aide et votre patience.
Mister Paul est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h47.


 
 
 
 
Partenaires

Hébergement Web