【问题标题】:FBJS in facebook脸书上的FBJS
【发布时间】:2009-06-26 03:41:35
【问题描述】:

我想在我的 facebook 应用程序中使用 javascript,但我不知道如何从 FBJS 开始使用它。请有人帮助我! 就像

<div onclick="greeting();">click me</div>
<script>
function greeting(){
  alert("hello world");
}
</script>

【问题讨论】:

  • 请注意,FBJS 的限制性很强。 alert() 在 FBJS 中不起作用。第一次使用它时,我发现这非常令人沮丧。
  • 但是当我创建一个函数时,萤火虫总是说:我的函数没有定义。 Facebook 自动在我的函数名称和所有内容中添加了数字键。像这样: 1234566_greeting 没有定义。我不知道如何在 facebook 应用程序中编写可执行函数
  • 数字前缀的原因是 FB 会解析您的内容并将您的应用程序 ID 预先添加到所有 javascript 实体以防止冲突。有关在 facebook 页面上显示对话框的示例,请参见下面的帖子。
  • Facebook 会将该前缀添加到您的函数中(这是您的应用程序 ID),但他们也会将该前缀添加到文档中您引用函数名称的任何位置,因此应该不会有任何问题无法引用该函数。
  • 感谢您的所有帮助!我觉得我不写脚本标签而不是写脚本和 type="text/javascript" 所以当我写语法时我陷入了一个不可停止的循环 javascript 没有定义当然我用 FBJS 用相同的方式写它结果。我希望写出我的错误可以帮助像我这样的新手!再次感谢大家!

标签: javascript facebook


【解决方案1】:

这对我有用:

<script type="text/javascript">
function areyousure(description,id,opt) {    var dialog = new Dialog(Dialog.DIALOG_POP).showChoice('Are you sure?','Are you sure you want to delete "' + description + '"? This action cannot be undone!','Yes','No');
    dialog.onconfirm = function() {
        document.setLocation("http://apps.facebook.com/myapp/delete.php?rec
ord=" + id + opt);
    }
}
</script>

.
.
.
<a href="#" onclick="areyousure(arg1,arg2,arg3)" ><img src="http://mysite/images/delete.png" /></a>

【讨论】:

  • 如果它对你有用,那就太奇怪了,因为你在 type="text/javascript" 的脚本中编写它在编写 document.setLocation 时在 FBJS 中无法理解
  • 为什么?根据维基百科,这是正确的用法。 en.wikipedia.org/wiki/JavaScript
【解决方案2】:

快速列出可以帮助你的东西,以及你应该使用的东西:

alert() -> no equivalent  
new Array() -> []  
new Object() -> {}  

“Big 2”DOM 发生了变化,这破坏了我的很多代码“回到什么时候”:

innerHTML -> setInnerXHTML(), note that this is strict  
id -> getId()  

A list of all the DOM changes.

请注意,FBJS 的文档记录很差,因此您必须尝试一些东西才能让一切正常运行。

【讨论】:

    【解决方案3】:

    根据this handy blog post,您可以使用Facebook 的Dialog 对象代替alert

    new Dialog().showMessage('Dialog', 'This is text');
    

    http://thinkclay.com/technology/getting-started-with-facebook-js-fbjs

    所以你可以像这样重写你的示例代码:

    <div onclick="greeting();">click me</div>
    <script>
    function greeting(){
      new Dialog().showMessage('Dialog', "hello world");
    }
    </script>
    

    【讨论】:

      猜你喜欢
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      • 2015-03-16
      • 2016-06-09
      • 2012-07-05
      相关资源
      最近更新 更多