2009-12-17 5 views
1

Comment puis-je définir une fonction JavaScript à l'intérieur de? J'ai essayé de charger un fichier JavaScript sur la balise de fin, mais je ne peux toujours pas appeler la fonction dans le fichier JavaScript.définir les fonctions JavaScript sur iframe facebook app à l'intérieur de <fb: serverfbml> tag

Voici la balise FBML:

<fb:serverfbml> 
    <script type="text/fbml"> 
    <fb:fbml> 
     <a href="#" id="this" onclick="do_colors(this); return false">Hello World!</a> 
     <script src="http://absolute.path.to/your/javascript/file.js"></script> 
    </fb:fbml> 
    </script> 
</fb:serverfbml> 

Et voici la fonction JavaScript file.js:

function random_int(lo, hi) { 
    return Math.floor((Math.random() * (hi - lo)) + lo) 
} 

function do_colors(obj) { 
    var r = random_int(0, 255), b = random_int(0, 255), g = random_int(0, 255); 
    obj.setStyle({background: 'rgb('+[r, g, b].join(',')+')', 
         color: 'rgb('+[r<128?r+128:r-128, g<128?g+128:g-128, b<128?b+128:b-128].join(',')+')'}); 
} 

J'utilise des rails et Facebooker pour développer l'application. Une idée ou une suggestion pour inclure des fonctions JavaScript?

Répondre

0

Avez-vous essayé de charger le script en premier? Il existe quelques autres directives here. Je peux voir comment ce qui suit pourrait vous mordre si vous changez votre script.

Depuis la politique de cache est de ne jamais expirer, vous devez mettre à jour l'URL que si le contenu des changements de script. Par exemple, vous pouvez changer http://foo.com/bar.js?v=1.0 à http://foo.com/bar.js?v=2.0 ou http://foo.com/v1.0/bar.js à http://foo.com/v2.0/bar.js quand une nouvelle version du script est disponible.

Questions connexes