11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour !

Voilà un certain temps que je ne m'étais plus replongé dans le JavaScript, et le réveil est plutôt difficile ! ça doit bien faire deux jours que j'écume le web sans trouver de solution, et de fait, j'ai de plus en plus l'impression de perdre du temps...

Voilà le problème :
Un script Prototype de base permet de mettre à jour le contenu d'une div :
<script type="text/javascript">
	var openMail = function(param){
	Params = 'page='+param;
	new Ajax.Updater('mail','mailmsg.php', {method: 'get',parameters :  params, evalScripts:true});
	}
</script> 

L'evalScripts passé à true permet de faire fonctionner les scripts du contenu appelé dans la div.
Mais attention, pas n'importe comment :
ceci ne fonctionnera pas :

<script type="text/javascript">
alert ("Javascript fonctionne ! ");
</script>

Par contre, ceci fonctionne :

<script type="text/javascript">
alertscript = function(stuff) {
	alert(stuff);
	}
alertscript ("Javascript fonctionne ! ");
</script> 


Voici les explications de la référence :
a écrit :
If you use evalScripts: true, any <script> block will be evaluated. This does not mean it will get included in the page: they won't. Their content will simply be passed to the native eval() function. There are two consequences to this:

* The local scope will be that of Prototype's internal processing function. Anything in your script declared with var will be discarded momentarily after evaluation, and at any rate will be invisible to the remainder of the page scripts.
* If you define functions in there, you need to actually create them, otherwise they won't be accessible to the remainder of the page scripts.


Mon problème est que j'aimerais inclure dans cette page appelée un script d'accordeon...
Event.observe(window, 'load', function() {
			new accordeon('container-selector', options);
		});

.. et je ne comprends pas grand chose aux explications de l'API Smiley bawling
Quelle syntaxe dois-je utiliser pour faire fonctionner l'accordeon ?

Merci de votre coup de pouce !
Modifié par yakou32 (29 Sep 2008 - 23:21)