|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Javascript unobtrusive [ JavaScript et le navigateur / Problème de compatibilité ] (duterte)
Informations & options pour cette discussion
mercredi 19 novembre 2008 à 13:07:19 |
Javascript unobtrusive

duterte
|
Bonjour, Débutant en javascript, j'ai créé un script très utile pour afficher du contenu dynamique dans plusieurs div à la demande. Je souhaiterais rendre ce script unobtrusive, afin de le rendre compatible avec les navigateurs ayant désactivé javascript. D'autre part, je ne suis pas sûr qu'il soit obtimisé. Quelqu'un peut-il m'aider ? Ma page 1 Ma page 2
|
|
|
mercredi 19 novembre 2008 à 13:31:49 |
Re : Javascript unobtrusive

duterte
|
Petit problème lors de la saisie du message
Dans le head :
<
script type="text/javascript" language="javascript">
function ouverture(url,id)
{
var xhr_object = null;
var position = id;
if(window.XMLHttpRequest)
{ xhr_object = new XMLHttpRequest(); }
else if(window.ActiveXObject)
{ xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); }
else
{ alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); }
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function()
{
if ( xhr_object.readyState == 4 )
{
if(xhr_object.status != 200)
{
document.getElementById(position).innerHTML ="Erreur " + xhr_object.status;
} else
{
// j'affiche ou je cache dans la DIV spécifiées le contenu retourné par le fichier
if (document.getElementById)
{
if (document.getElementById(position).style.display == "block")
{ document.getElementById(position).style.display = 'none'; }
else if (document.getElementById(position).style.display == "none")
{ document.getElementById(position).style.display = 'block'; }
else { document.getElementById(id).style.display = 'none'; }
}
document.getElementById(position).innerHTML = xhr_object.responseText;
}
} else { document.getElementById(position).innerHTML = '<p style="text-align:center">Chargement des données en cours...</p>'; }
}
// dans le cas du get
xhr_object.send(null);
};
</script>
Dans le body :
<
a href="./page1.html" onclick="ouverture(this.getAttribute('href'),'page'); return false;">Ma page 1</a>
<div id="page" style="display:none; width:300px; height:300px; border:1px dashed #ccc; overflow:auto"> </div>
<
a href="./page2.html" onclick="ouverture(this.getAttribute('href'),'page2'); return false;">Ma page 2</a>
<div id="page2" style="display:none; width:300px; height:300px; border:1px dashed #ccc; overflow:auto"> </div>
|
|
|
mercredi 19 novembre 2008 à 17:20:54 |
Re : Javascript unobtrusive

PetoleTeam
|
Bonjour, J'aurais au moins appris un mot aujourdh'ui! unobtrusive mais
| ...le rendre compatible avec les navigateurs ayant désactivé javascript |
| est un non sens, me semble t-il si j'ai tout bien compris...
Toujours si j'ai bien compris le sens du mot, ton soucis et qu'il te faut passer par une class déclarée dans les balises concernées. exemple : <a href="page_1.html" class="ouverture_auto">Voir la page 1</a> <a href="page_2.html" class="ouverture_auto">Voir la page 2</a>
dans ton fichier js externe, pour être unobtrusive, il te faut mettre une fonction sur le onload du document qui va récupérer les liens ayant la class ouverture_auto et leur assigner la fonction qui va bien sur l'événement onclick de ceux ci.
Pour ce faire... à partir de la collection document.links, qui contient les liens de ta page, tu testes si le lien à la bonne classe, avec className, et tu lui affecte la fonction grace à addEventListener ou attachEvent pour IE.
Mais ai je bien percuté !!!!!! ;O)
|
|
|
mercredi 19 novembre 2008 à 17:39:30 |
Re : Javascript unobtrusive

duterte
|
Bien dit,
Je cherche à retirer les instructions javascript inline.
Seulement, grand débutant, je n'arrive pas à écrire les événements onclick et surtout récupérer la variable qui va afficher le contenu de ma page1.html dans la div de destination...
|
|
|
mercredi 19 novembre 2008 à 18:16:27 |
Re : Javascript unobtrusive

PetoleTeam
|
Juste pour une approche e ce que l'on peut faire... <html> <head> <script type="text/javascript"> //------------------ function Init_Page(){ var Nbr = document.links.length; for( i=0; i < Nbr; i++){ alert( document.links[i].className); } } </script> </head> <body onload="Init_Page();"> <a href="page_1.html" class="ouverture_auto">Voir la page 1</a><br> <a href="page_2.html" class="ouverture_auto">Voir la page 2</a><br> <a href="page_3.html" >Voir la page 3</a> </body> </html> ;O)
|
|
|
mercredi 19 novembre 2008 à 18:40:57 |
Re : Javascript unobtrusive

duterte
|
Merci
Par contre, je ne sais pas comment instancier le fait qu'un clic doit renvoyer la page vers une div spécifique...
|
|
|
mercredi 19 novembre 2008 à 18:55:08 |
Re : Javascript unobtrusive

PetoleTeam
|
Il te suffit de récupérer l'id du DIV de destination fonction du lien en cours, en lui mettant une id par exemple... Cela peut donner ceci... <html> <head> <style type="text/css"> div { height : 50px; width : 400px; border : 1px solid gray; } </style> <script type="text/javascript"> //------------------ function Init_Page(){ var Nbr = document.links.length; for( i=0; i < Nbr; i++){ var O_Lien = document.links[i]; // Recup l'objet Lien var szID = 'D' + O_Lien.id; // Affecte l'ID de destination var O_Dest = document.getElementById( szID); // Recup le DIV destinataire // alert( O_Lien.className); O_Dest.innerHTML = O_Lien.href; // Ecriture dans DIV correspondant } } </script> </head> <body onload="Init_Page();"> <a id="A_1" href="page_1.html" class="ouverture_auto">Voir la page 1</a><br> <a id="A_2" href="page_2.html" class="ouverture_auto">Voir la page 2</a><br> <a id="A_3" href="page_3.html" >Voir la page 3</a> <div id="DA_1"></div> <div id="DA_2"></div> <div id="DA_3"></div> </body> </html> ;O)
|
|
|
mercredi 19 novembre 2008 à 21:03:37 |
Re : Javascript unobtrusive

duterte
|
D'accord pour la boucle links.
Par contre la requete onclick n'apparaît pas.
Je crois que je vais rester sur ma version obtrusive...
Merci à toi !
|
|
|
mercredi 19 novembre 2008 à 21:16:39 |
Re : Javascript unobtrusive

PetoleTeam
|
OUPS ! pas bien lu ton dernier envoi...la fatigue ou le blanc ?
<html> <head> <style type="text/css"> div { height : 50px; width : 400px; border : 1px solid gray; } </style> <script type="text/javascript"> //---------------------- function Affiche( this_){ var szID = 'D' + this_.id; // Affecte l'ID de destination var O_Dest = document.getElementById( szID); // Recup le DIV destinataire O_Dest.innerHTML += this_.href; return( false); // Stop propagation IMPORTANT } //------------------ function Init_Page(){ var Nbr = document.links.length; for( i=0; i < Nbr; i++){ var O_Lien = document.links[i]; // Recup l'obet Lien //-- Test si la classe est la bonne if( O_Lien.className.indexOf( 'ouverture_auto') > -1){ O_Lien.onclick = function(){ return( Affiche( this)); // la fonction sur le onclick } } } } </script> </head> <body onload="Init_Page();"> <a id="A_1" href="page_1.html" class="ouverture_auto">Voir la page 1</a><br> <a id="A_2" href="page_2.html" class="ouverture_auto">Voir la page 2</a><br> <a id="A_3" href="page_3.html" >Voir la page 3</a> <div id="DA_1">DIV DA_1<br></div> <div id="DA_2">DIV DA_2<br></div> </body> </html> ceci n'est qu'un exemple de procédure bien sur... ;O)
|
|
|
jeudi 20 novembre 2008 à 09:00:25 |
Re : Javascript unobtrusive

duterte
|
Merci à toi,
Si j'ai bien compris, je dois ensuite placer mon script en l'adaptant en lieu et place de function Affiche( this_);
Car ta fonction affiche le résultat du lien, mais pas le contenu sur le test que j'ai fait...
|
|
|
Cette discussion est classé dans : script, javascript, page, rendre, unobtrusive
Répondre à ce message
Sujets en rapport avec ce message
appeller une script [ par poitierjohan ]
Bonjour,Est-il possible d'appeller un script (écrit en JavaScript) qui est en dehors de ma page hmtl??Autrement dis, que ma page web dans laquelle je
javascript et html [ par droyan ]
bonjour, j'aimerais avoir un renseignement : j'ai sur une page web un script javascript que l'on m'a donné. Lorsque j'affiche la source de cette page
Appel de page php [ par cedriclomb ]
Bonjour, Je cherche a faire un script javascript qui appellerai une page php Pourquoi ne pas faire du php direct vous allez me dire ? Et bien c'est to
demande de script [ par nikki113 ]
bonsoir,je me permets de vous demander un script car je ne connais rien au javascript. Actuellement j apprends le PHP et cela n est pas encore le top.
Redirection de page [ par clementio ]
Bonjour à tous,D'habitude je "traîne" sur VBFrance mais là je viens vous posez une petite question sur JavaScript.Voilà le problème:Lorque l'on ouvre
Recharger une page [ par onzeshow ]
Bonjour, je sais que ce script existe je l'ai déjà vu mais ca fait une semaine que je le recherche et impossible de remettre la main dessus...il s'agi
executer un script en fin de chargement de la page [ par HackPac ]
Lu all !Je possède un système d'échange de bannière. Les membres mettent un code sur leurs page pour afficher aléatoirement les bannières des autres s
Mozilla et javascript [ par Zebra1928 ]
bonjour à tous !!j'ai la portion de code suivante de la page " mapage.html ": New document<meta http-equiv="Content-Type" content="text/html; charset=
Recherche (automatique ou non) de script dans une page [ par luciolis ]
Bonjour,Je suis un hébergeur gratuit ayant pas mal de succès, et dans une de mes offres, l'utilisateur doit entrer un code javascript dans sa page ind
Problème chargement image javascript [ par Travailleuuse06 ]
Bonjour,je suis devant un très gros problème que je n'arrive pas à résoudre. J'ai une page html où j'ai un Dans ma partie javascript, j'ai document.
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|