Bonjour,
Je ne suis pas certains d'être au bon endroit du forum, vu que mon problème mélange du javascript et des accents dans des liens. Désolé.
J'explique mon problème :
Travaillant pour l'intranet d'une institution, je fais des liens vers des documents stockés dans des bases de données (sur laquelle je n'est pas la main) dont les adresses peuvent contenir des accents. Je les code avec les % pour que ce soit valide (les pages sont codés en utf-8), et jusque là aucun problème.
Or, les liens sortant du site ouvrent toujours dans une nouvelle fenêtre (je sais, ce n'est pas bien, mais je ne suis pas responsable de celà et ne peux modifier cette mauvaise habitude).
Pour que ces liens soient valides en xhtml 1.0, j'utilise un javascript appelé par une class, comme expliqué sur cette page(http://css.alsacreations.com/Accessibilite-du-Web/liens-externes-nouvelle-fenetre), tout en y incluant un marqueur de statistique.
Le problème ? Alors que tout fonctionne sous FF ou Opera, et que les liens accentués fonctionne sous IE6 avec target="_blank", les liens accentués avec javascript ne fonctionne pas sous IE6 (pas vérifié sous IE7).
Exemple :
est interprété par IE ainsi :
http://mozart/DRH/EmploisCreditsProd.nsf/0/0506867d4b254500c125736f00346d19/$FILE/lettre%204ème%20trimestre%20DEF.pdf
Sachant que tous les postes de mon boulot sont sous IE6 (changer de navigateur n'est pas une solution), connaîtriez-vous une solution à ce problème ? Si je pouvais intégrer un bout de code dans le seul fichier javascript appelé, ça serait le bonheur.
Merci d'avance pour vos réponses.
P'tit Ben
PS : le fichier appelé :
Édition : ajout d'espace dans les [i ] du code pour que cela ne bug pas à l'affichage
Modifié par Ptit Ben (29 Apr 2008 - 11:51)
Je ne suis pas certains d'être au bon endroit du forum, vu que mon problème mélange du javascript et des accents dans des liens. Désolé.
J'explique mon problème :
Travaillant pour l'intranet d'une institution, je fais des liens vers des documents stockés dans des bases de données (sur laquelle je n'est pas la main) dont les adresses peuvent contenir des accents. Je les code avec les % pour que ce soit valide (les pages sont codés en utf-8), et jusque là aucun problème.
Or, les liens sortant du site ouvrent toujours dans une nouvelle fenêtre (je sais, ce n'est pas bien, mais je ne suis pas responsable de celà et ne peux modifier cette mauvaise habitude).
Pour que ces liens soient valides en xhtml 1.0, j'utilise un javascript appelé par une class, comme expliqué sur cette page(http://css.alsacreations.com/Accessibilite-du-Web/liens-externes-nouvelle-fenetre), tout en y incluant un marqueur de statistique.
Le problème ? Alors que tout fonctionne sous FF ou Opera, et que les liens accentués fonctionne sous IE6 avec target="_blank", les liens accentués avec javascript ne fonctionne pas sous IE6 (pas vérifié sous IE7).
Exemple :
<a href="http://mozart/DRH/EmploisCreditsProd.nsf/0/0506867d4b254500c125736f00346d19/$FILE/lettre%204%C3%A8me%20trimestre%20DEF.pdf" onclick="window.open(this.href); return false;">N°12</a>
est interprété par IE ainsi :
http://mozart/DRH/EmploisCreditsProd.nsf/0/0506867d4b254500c125736f00346d19/$FILE/lettre%204ème%20trimestre%20DEF.pdf
Sachant que tous les postes de mon boulot sont sous IE6 (changer de navigateur n'est pas une solution), connaîtriez-vous une solution à ce problème ? Si je pouvais intégrer un bout de code dans le seul fichier javascript appelé, ça serait le bonheur.
Merci d'avance pour vos réponses.
P'tit Ben
PS : le fichier appelé :
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 à lien_ext, alors on agit.
if ( (liens[i ].className == 'lien_ext') || (liens[i ].className == 'lien_ext_menu') || (liens[i ].className == 'lien_lotus') || (liens[i ].className == 'lien_dossier') ) {
liens[i ].title = 'S’ouvre dans une nouvelle fenêtre';
// Au clique de la souris.
liens[i ].onclick = function() {
xt_med('C','1',this.href,'S'); //tag Xiti pour un lien de sortie du site
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.
};
}
if ( (liens[i ].className == 'lien_xls') || (liens[i ].className == 'lien_ppt') || (liens[i ].className == 'lien_doc') || (liens[i ].className == 'lien_pdf') || (liens[i ].className == 'lien_fichier') ) {
liens[i ].title = 'Ouvrir le document dans une nouvelle fenêtre';
// Au clique de la souris.
liens[i ].onclick = function() {
xt_med('C','1',this.href,'T'); //tag Xiti pour un lien de téléchargement d'un fichier
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.
};
}
}
}
// Au chargement de la page, on appelle la fonction.
window.onload = function()
{
open_ext_link();
setTimeout('fixerPiedPage()',10);
};
Édition : ajout d'espace dans les [i ] du code pour que cela ne bug pas à l'affichage
Modifié par Ptit Ben (29 Apr 2008 - 11:51)