Plusieurs de mes pages, utilisez les deux JQuery et Protoype. Depuis que j'ai mis à niveau vers la version 1.3 de JQuery, ce qui semble être à l'origine des problèmes, parce que les deux bibliothèques de définir une fonction nommée '$'.
JQuery fournit une fonction noConflict() qui abandonne le contrôle de dollars à d'autres bibliothèques susceptibles de l'utiliser. Il semble donc que j'ai besoin de passer par toutes mes pages qui ressemblent à ceci:
<head>
<script type="text/javascript" src="/obp/js/prototype.js"></script>
<script type="text/javascript" src="/obp/js/jquery.js"></script>
</head>
et de les changer pour ressembler à ceci:
<head>
<script type="text/javascript" src="/obp/js/prototype.js"></script>
<script type="text/javascript" src="/obp/js/jquery.js"></script>
<script type="text/javascript">
jQuery.noConflict();
var $j = jQuery;
</script>
</head>
Je dois être en mesure d'utiliser '$' de Prototype et '$j' (ou 'jQuery') pour JQuery. Je ne suis pas entièrement satisfait sur la duplication de ces 2 lignes de code dans chaque page, et s'attendre à ce que à un certain moment, quelqu'un est susceptible d'oublier de les ajouter à une nouvelle page. Je préfère être en mesure de faire ce qui suit
- Créer un fichier j
query-noconflict.js
qui "comprend"jquery.js
et les 2 lignes de code ci-dessus - Importer
jquery-noconflict.js
(au lieu dejquery.js
) dans toutes mes JSP/pages HTML
Cependant, je ne suis pas sûr si il est possible d'inclure un fichier JS dans un autre, de la manière que j'ai décrite? Bien sûr, une autre solution consiste simplement à ajouter les 2 lignes de code ci-dessus pour jquery.js directement, mais si je fais ça je vais avoir besoin de vous rappeler de le faire à chaque fois que je l'ai mise à niveau de JQuery.