Une bonne page web doit être consultable et entièrement fonctionnelle sans Javascript. Ce langage est optionnel du fait que tout le monde n'en dispose pas. Aussi, Javascript est principalement utile lorsqu'il s'agit d'améliorer et d'étendre le comportement de vos pages.
Cela veut donc dire que vous ne disposez pas forcément de toutes les fonctionnalités de votre page si ce langage est indisponible. En revanche, chacun des éléments présents dans votre page fonctionne (liens, boutons, etc...). Si un bouton ne fonctionne pas sans Javascript, c'est que celui-ci n'a pas sa place dans le code XHTML et qu'il devrait être créé via le script. Les codes suivants illustrent ces propos.
Mauvais code pour un lien d'impression :
<a href="#" onclick="window.print(); return false;">Imprimer</a>
Résultat (lien présent mais non fonctionnel sans Javascript) :
Bon code pour un lien d'impression :
<script type="text/javascript"><!--
function fnInsertPrint()
{
// Création d'un lien
var oA = document.createElement('a');
oA.setAttribute('href', '#');
var oTxtA = document.createTextNode('Imprimer');
oA.appendChild(oTxtA);
// Affectation de la méthode print() au clic sur le lien
oA.onclick = function() { window.print(); return false; }
// Positionnement du lien dans la page
var oCont = document.getElementById('conteneur');
if(!oCont) return;
oCont.appendChild(oA);
}
// Lancement de la fonction fnInsertPrint()
fnInsertPrint();
//--></script>
Résultat (lien optionnel disponible avec JS) :
Nota : return false; empêche le navigateur de suivre le lien lorsque Javascript est activé et if(!oCont) return; annule l'insertion du lien si le conteneur récepteur n'existe pas. (bonne pratique à retenir)
Pour les mêmes raisons, on évite l'ajout de contenu via un document.write(). Les méthodes d'écriture doivent être réservées à ces contenus optionnels.
Méthode d'insertion de contenu à éviter :
<script type="text/javascript"><!--
document.write('Salut, ça va ?');
//--></script>
Résultat (disponible uniquement avec JS) :