2010-04-12 74 views
1

我如何编码一个Facebook报价应用程序从PHP/MySQL页面随机生成报价的数据?我已经开发了一个,但它使用FBML不支持的jQuery,因为我希望配置文件选项卡我宁愿去FBML而不是iframe。Facebook的报价应用程序错误

如何做到这一点没有jQuery或使用FBJS?

<!DOCTYPE html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
     <link rel="stylesheet" type="text/css" href="css/jquote.css" /> 

     <!--<script type="text/javascript" src="scripts/jquery-1.4.2.js"></script>--> 

     <script type="text/javascript" src="fbjqry/utility.js"></script> 
     <script type="text/javascript" src="fbjqry/fjqry.js"></script> 
     <script type="text/javascript"> 
      // On page load, fill the box with content. 
      $(document).ready(function() { 
       $("#quoteContainer").load("quote.php"); 
      }); 

      var auto_refresh = setInterval(
      function() 
      { 
       $('#quoteContainer').load('quote.php'); 
      }, 5000); // refresh every 10000 milliseconds 
     </script> 

    </head> 

    <div id="wrapper"> 
     <div class="header">&nbsp;Quote of the Day</div> 
     <div id="quoteContainer"> 
     </div> 
    </div> 
</html> 
+0

不知道我完全理解你的最终结果应该做什么。 – Jayrox 2010-04-12 17:51:44

+0

你只是试图将随机引号发布到应用程序墙? – Jayrox 2010-04-12 17:52:55

+0

不,我试图创建一个facebook应用程序,它在安装它的用户的配置文件选项卡上显示随机引号。这些引用将从我的服务器上的mysql中获取。我使用jQuery来显示随机引号,但fbml不支持它。我不知道如何去实现fbjs中的相同功能。有任何想法吗? – input 2010-04-12 17:56:56

回答

1

这是一个相当广泛的问题,但基本上你有两个选择与Facebook。您可以创建一个FBML应用程序,并将您的客户端脚本限制为FBJS,或者您可以创建iframe应用程序,并使用所需的任何Javascript库。

中间解决方案是使用<fb:iframe>标记将iframe放入FBML页面。 iframes可让您使用完整的Javascript,但当然,您无法使用内部代码修改iframe之外的任何内容。它可以是一个很好的工具,但你只需要适当地设计你的UI。

你提到你使用JQuery,但你并没有真正说出。如果你担心AJAX功能,FBJS provides that。如果你想花哨的效果,那么你可能会运气不好,因为FBJS可能会非常有限。

要记住的另一件事是配置文件选项卡获取自己的URL,因此它们可以指向与主应用程序完全分离的代码。例如,如果您的主应用程序的服务范围是http://yourapp.com,则在开发人员设置中,您可以将配置文件选项卡设置为http://yourapp.com/profiletab。没有理由不能提供iframe应用程序作为主应用程序,只需为配置文件选项卡编写一些FBML输出即可。

+0

我正在使用jquery从php文件中随机获取引号。即使我编码配置文件选项卡的fbml输出,我将如何随机生成没有jQuery的报价? – input 2010-04-12 18:29:58

+0

我已经发布了代码,请查看。 – input 2010-04-12 18:31:21

+0

那么,而不是使用jquery,你可以把报价放在使用PHP的HTML输出中。如果不这样做,看起来jQuery所做的只是一个ajax调用('.load()'只是一个ajax调用,对结果进行了一些特殊的处理),所以在FBJS中实现它不会太困难。 – zombat 2010-04-12 19:03:01

相关问题