Accueil > Forum > > > > Javascript unobtrusive
Javascript unobtrusive
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ée 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
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|