11548 sujets

JavaScript, DOM et API Web HTML5

voilà la question du gros débutant du jour : j'ai relativement compris et mis en application 2 fonctions qui sont correctes séparément, mais quand je les mets dans le même script.js (ou dans 2 différents c'est pareil, par exemple script1.js et script2.js), il n'y en a qu'une qui est valide... je ne sais pas faire pour les additionner ou alors elles sont incompatibles ?
voilà la première :

function open_ext_link()
{
var liens = document.getElementsByTagName('a');
// On récupère tous les liens (<a>) du document dans une variable (un array), ici liens.
// Une boucle qui parcourt le tableau (array) liens du début à la fin.
for (var i = 0 ; i < liens.length ; ++i) {
// Si les liens ont un nom de class égal à info_lien_ext, alors on agit.
if (liens.className == 'info_lien_ext') {
liens[i].title = 'ouvre une nouvelle fenetre';
// Au clique de la souris.
liens[i].onclick = function() {
window.open(this.href);
return false; // On ouvre une nouvelle page ayant pour URL le href du lien cliqué et on inhibe le lien réel.
};
}
}
}
window.onload = open_ext_link;
// Au chargement de la page, on appelle la fonction.

voilà la deuxième :

function pop()
{
var myAs = document.getElementsByTagName('a');
for (var a = 0; a < myAs.length; ++a) {
// Si le lien a une classe de type pop
if (myAs[a].className == 'pop') {
// on extrait l'id de la popup à partir du href
var pop = document.getElementById(myAs[a].href.substring(myAs[a].href.lastIndexOf('#') + 1));
// si la popup existe on l'affiche (display block)
if (pop) {
pop.style.display = 'none';
myAs[a].onclick = function() {
thisPopup = document.getElementById(this.href.substring(this.href.lastIndexOf('#') + 1))
thisPopup.style.display = (thisPopup.style.display == 'none') ? 'block' : 'none';
return false;
};
// on efface la popup en cliquant dessus
pop.onclick = function()
{
this.style.display = 'none';
};
}
}
}
}

window.onload = pop;


merci de vos conseils ! Smiley biggrin
[/i][/i]
Administrateur
Salut chankalan et bienvenue ici Smiley cligne

Voudrais-tu bien relire les Règles du forum (tu ne peux pas rater le lien puisque tu les as approuvées en t'inscrivant), et notamment le point 13 qui explique comment mettre en forme les codes dans le forum.

Merci d'avance Smiley smile
Suffit de faire un troisième script qui contient uniquement :
window.onload = function() {
  open_ext_link();
  pop();
}


Et voilà Smiley cligne

C'est une question qui revient souvent sur un autre forum... Et c'est toujours étrange, vu que ça parait tellement logique de faire une troisième fonction qui combine les deux premières Smiley confus
merci des conseils
j'essaie toujours de trouver les réponses avant de poser une question, et d'ailleurs je trouve souvent... mais des fois je patauge....
merci encore