在<fb:serverfbml> tag </fb:serverfbml>中的iframe facebook app上定义JavaScript函数

时间:2009-12-17 14:43:36

标签: ruby-on-rails ruby facebook facebooker

如何在内部定义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>

这是file.js中的JavaScript函数:

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 :(得分:0)

您是否先尝试加载脚本? 还有其他一些指导原则here。 如果你改变你的剧本,我可以看到以下内容会如何咬你。

  

由于缓存策略设置为never   到期后,您应该只更新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当一个新人   该脚本的版本可用。