определять функции JavaScript в приложении iframe facebook внутри тега <fb: serverfbml> - PullRequest
1 голос
/ 17 декабря 2009

Как я могу определить функцию JavaScript внутри? Я попытался загрузить файл JavaScript в конечный тег, но все еще не могу вызвать функцию в файле JavaScript.

Вот тег 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>

А вот функция 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(',')+')'}); 
}

Я использую rails и facebooker для разработки приложения. Любая идея или предложение для включения функций JavaScript?

1 Ответ

0 голосов
/ 17 декабря 2009

Вы пытались сначала загрузить скрипт? Есть пара других рекомендаций здесь . Я вижу, как следующее может укусить вас, если вы измените свой скрипт.

Поскольку политика кэширования установлена ​​на никогда истекает, вы должны обновить только URL если содержание скрипта меняется. Например, вы можете изменить http://foo.com/bar.js?v=1.0 до http://foo.com/bar.js?v=2.0 или http://foo.com/v1.0/bar.js до http://foo.com/v2.0/bar.js когда новый доступна версия скрипта.

...