【问题标题】:periodically_call_remote: Rails AJAX for a facebook appperiod_call_remote:用于 facebook 应用程序的 Rails AJAX
【发布时间】:2009-08-06 20:17:51
【问题描述】:

我正在使用 FBML 和 Prototype JavaScript 库为 facebook 构建一个 RoR 应用程序。

我想要做的是让 div 自动刷新,使用整洁 periodically_call_remote,它创建了一个PeriodicalExecuter 对象。

代码如下:

 <%= render :partial => "status_item", :collection => @status %>
 <%= periodically_call_remote( :url => { :action => :status, :id => @hunt.id }, :update => 'status_div') %>

我遇到了两种错误:

  1. SyntaxError: Parse error's on fbml_static_get.php on http://biascica.pipps.net:8888/javascripts/prototype.js?1246455754 and likes (effects.js and controls.js)

  2. ReferenceError的:can't find variable a116508001384_PeriodicalExecuter

这是由 facebook 修改的 javascript 代码:

new a116508001384_PeriodicalExecuter(function() {new a116508001384_Ajax.Updater('status_div', '/corinna_test/servers/ren%C3%A9/treasure_hunts/12/status', {asynchronous:true, evalScripts:true, parameters:'authenticity_token=' + a116508001384_encodeURIComponent('qBY5jTvJ04rEcvLsQzkhNkEhRXN1wRA2ITrgq/4JmVg=')})}, 10)

(注意他们是如何在几乎所有内容前面添加a116508001384_

我也遇到了iframex 错误,但我认为这不是当前的优先事项。

谁能帮我弄明白这个烂摊子吗?

谢谢! 不对称

【问题讨论】:

    标签: javascript ruby-on-rails ajax facebook prototypejs


    【解决方案1】:

    你不能这样做。 Facebook 有自己的受限 Javascript 版本,称为 Facebook Javascript (FBJS)。您需要使用 Facebook 的 Ajax 对象。原型 API 的东西不适用于 FBJS。您需要使用 FBJS 或将您的应用程序放在 iframe 中。

    function doAjaxStuff() { var ajax = new Ajax(); var params = { param1: 'param1' }; ajax.responseType = Ajax.FBML; ajax.ondone = function(data) { $('div').setInnerFBML(data); }; ajax.onerror = function() { $('div').setTextValue('error...'); }; ajax.post(URL, params); }

    【讨论】:

      猜你喜欢
      • 2013-12-28
      • 1970-01-01
      • 1970-01-01
      • 2020-12-23
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多