Development #7589
Permettre le fonctionnement avec django-debug-toolbar
0%
Description
(J'utilise beaucoup django-debug-toolbar)
Pour son fonctionnement django-debug-toolbar charge une version à lui de jQuery (qu'on peut modifier1) en appelant jQuery.noConflict(true)
le problème est qu'il le fait en fin de page alors que nos codes js à nous utilise la valeur globale du symbole $
. Pour permettre à nos codes javascript de s'exécuter en toute circonstance il faudrait être un peu plus défensif et recopier la valeur de la variable jQuery
dans un espace de nom privé à l'aide de la construction suivante:
(function () { var $ = jQuery; ... ici j'utilise $ sans me soucier de ce qu'il adviendra... })();
Les deux patchs qui suivent adopte ce comportement dans gadjo.js et dans le bout de script dans root.html qui gère le fondu des messages Django.
.fn1
DEBUG_TOOLBAR_CONFIG = { 'JQUERY_URL': '//static/xstatic/jquery.min.js', }
Fichiers
Révisions associées
root.html: protect $ symbol from overwriting (#7589)
$ can be overwritten by the jQuery loaded by django-debug-toolbar in the
messages fadeout callback, it prevents that.
Historique
Mis à jour par Benjamin Dauvergne il y a presque 9 ans
- Fichier 0001-gadjo.js-protect-the-symbol-from-overwriting-7589.patch 0001-gadjo.js-protect-the-symbol-from-overwriting-7589.patch ajouté
- Fichier 0002-root.html-protect-symbol-from-overwriting-7589.patch 0002-root.html-protect-symbol-from-overwriting-7589.patch ajouté
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a presque 9 ans
Dans la documentation de la django-debug-toolbar, à propos de JQUERY_URL, "Make it empty to rely on a version of jQuery that already exists on every page of your site.", pourquoi ne pas prendre cette option ?
Mis à jour par Benjamin Dauvergne il y a presque 9 ans
- Statut changé de Nouveau à Rejeté
Je suis passé à coté, ça marche. L'idée de coder défensivement nos codes JS pourra par contre avoir son intérêt sur d'autres projets je pense (intégration mandaye v2 en javascript). On en reparlera.
gadjo.js: protect the $ symbol from overwriting (#7589)
By using a private namespace we protect ourself from call to
jQuery.noConflict(true) by django-debug-toolbar.