web-dev-qa-db-fra.com

Comment supprimer l'attribut type des balises de script d'un document Html5?

Dès le 17 décembre, W3C XHTML a commencé à signaler cette erreur:

L'attribut type n'est pas nécessaire pour les ressources JavaScript.

L'avertissement ci-dessus est généré dans le script Joomla lui-même pour appeler des modules ou jQuery, CSS, etc. Il n'est écrit dans aucun fichier Joomla. La façon dont Joomla appelle les scripts dans les fichiers core est probablement liée. Ce problème apparaît également dans WordPress, mais il existe un solution de contournement . Dans Joomla, j'ai supprimé tous les modules, les avertissements diminuent, mais toujours là. J'ai testé avec un autre modèle, mis à jour la version de Joomla vers la version 3.8.3 et aucune solution.

2
Ricardo

Joomla ajoute cet attribut par défaut lorsqu'un javascript est ajouté mais que le paramètre type n'est pas spécifié. Vous pouvez le voir dans la fonction addScript à l'adresse libraries\src\Document\Document.php.

Bien que vous puissiez écrire un plugin pour écraser cette sortie, cela semble être une tentative inutile. Un avertissement n'est pas la même chose qu'une erreur. Dans ce cas, le code est toujours valide, simplement avec quelques inutile en vrac (car la spécification HTML5 indique que la valeur de type par défaut de <script> est déjà "text/javascript").

Je suppose que les versions futures de Joomla supprimeront probablement cette balise, qui ne sert plus à rien. Les utilisateurs de navigateurs autres que HTML5 ne seront pratiquement plus existants.

Bien que vous deviez toujours utiliser un validateur, corriger toutes les erreurs et tous les avertissements peut être une erreur. Examinez-les et assurez-vous de les comprendre. Corrigez les erreurs potentiellement dangereuses (la plupart des erreurs le seront, mais pas les avertissements) et assurez-vous que les autres sont justifiables. Dans ce cas, le code encombrant sur votre site ne présenterait aucun avantage pour un utilisateur. Par conséquent, corriger l'avertissement semblerait être une erreur.

2
Richard B

La solution a été trouvé par l'utilisateur FabrizioG en ajoutant la ligne suivante dans le index.php du modèle:

// Set HTML5 Document Output
$doc = JFactory::getDocument();
$doc->setHtml5(true); 

Certains avertissements restent parce que j'utilise JCHOPtimize , cela a été facilement résolu en supprimant l'attribut "type" dans le fichier linkbuilder.php

0
Ricardo