J'utilise prototype pour charger le fichier js externe (en fait c'est un fichier php) dynamiquement. Comme ceci:Chargement dynamique d'un fichier js en utilisant Prototype?
function UpdateJS(file)
{
var url = 'main_js.php?file='+file;
var myAjax = new Ajax.Request(url, {method: 'get', onComplete: showResponseHeader});
}
function showResponseHeader (originalRequest)
{
$('jscode').innerHTML = originalRequest.responseText;
}
Container "codeJS" est défini comme suit:
<script type="text/javascript" id="jscode"></script>
Et ça marche! Mais si un fichier différent est appelé, toutes les fonctions du fichier précédent sont conservées. Et je ne veux pas ça. Quelqu'un sait comment "décharger" le premier fichier js quand le second est appelé?
(j'ai aussi essayé d'utiliser la fonction Ajax.Updater mais le résultat est le même.)
Mise à jour: Il se trouve qu'il ya problème plus grave: il ne se charge si la fonction « UpdateJS » est en window.onload c'est pourquoi il ne charge rien d'autre après cela. Donc les prototypes sont mis à jour, ce n'est peut-être pas un bon moyen pour ça ...
J'avais lu à ce sujet aussi bien, le problème semble être qu'il supprime le nœud de script, mais pas réellement les propriétés définies de la mémoire, et qui était le point n'était-ce pas? –
Non, en fait ce n'est pas le cas. Mais oui, je pensais que c'était le problème. Si mon nouveau fichier .js charge la fonction qui a le même nom que dans le premier fichier .js, il utilisera la seconde et c'est ce que je voulais. – domagojk