在制作Facebook应用程序时,JavaScript在哪些方面受到限制?

在制作Facebook应用程序时,JavaScript在哪些方面受到限制?,javascript,facebook,Javascript,Facebook,我被要求做Facebook应用程序。在我做出任何承诺之前,我想知道将一个游戏移动到Facebook有多容易?(我完全可以在浏览器中用JavaScript制作游戏。) Facebook是否以某种方式过滤JavaScript?我可以使用jQuery或其他JS库吗?我可以通过动态更改DOM来制作动画吗?最好使用iFrame还是使用FBML 我在Facebook开发者网站上做了一些调查。但是我想听听做过这项工作的人的学习曲线是什么样子的。我想说的不太难,因为你已经有了编写游戏的能力,你可以编写faceb

我被要求做Facebook应用程序。在我做出任何承诺之前,我想知道将一个游戏移动到Facebook有多容易?(我完全可以在浏览器中用JavaScript制作游戏。)

Facebook是否以某种方式过滤JavaScript?我可以使用jQuery或其他JS库吗?我可以通过动态更改DOM来制作动画吗?最好使用iFrame还是使用FBML


我在Facebook开发者网站上做了一些调查。但是我想听听做过这项工作的人的学习曲线是什么样子的。

我想说的不太难,因为你已经有了编写游戏的能力,你可以编写facebook应用程序,也可以将游戏迁移到facebook

据我所知,使用FBML,您的javascript将变得毫无用处(是的,您的javascript将被过滤)

因此,您必须使用iFrame,您的javascript将保持其功能(只要javascript不触及fbml标记)


Facebook api文档是出了名的糟糕。

Facebook上下文中的JavaScript是不同的,因为它在通过Facebook时会被重写。要了解差异(其中有很多差异),请从开始。这本指南是一本很好的入门书

该网站将成为你的圣经是,它是规范的方面的FB平台。此外,正如我们大家都知道的(爱?恨?)Facebook平台是一个移动的目标,因此通过Facebook上的开发者小组跟上形势是很有用的。我也喜欢博客

大多数允许开发人员 在其域中嵌入JavaScript 强制开发人员使用iframe 沙箱存储他们的代码。Facebook已经采取了行动 对这个问题采取不同的方法。 您提供给我们的JavaScript 已解析,以及任何标识符(函数 和变量名)的前面加上 您的应用程序ID。例如 以下代码块:

function foo(bar) { var obj = {property: bar}; return obj.property;
}

变成:

function a12345_foo(a12345_bar) { var a12345_obj = {property: a12345_bar}; return a12345_obj.property; }
这将为每个对象创建一个虚拟作用域 在Facebook中运行的应用程序。 从那里我们揭露了某些事实 通过一组 允许您 在Facebook上修改你的内容。我们的 制作对象是为了模仿 JavaScript的功能与 尽可能,但可能需要一些时间 习惯于那些 已经精通JavaScript

许多在普通JavaScript中只是元素的项目必须通过FBJS中的特殊方法调用来完成。例如,在JS中引用表单字段的值时,您使用
.value
,而在FBJS中,您需要执行
.getValue()
。正是这些差异阻止了简单地将JS从别处剪切粘贴到Facebook上


这是一个基本的入门。这应该让你开始。祝你好运

简单的解决方案是将整个游戏包装在iFrame中。FB本身过滤掉了很多javascript调用——基本上,任何涉及窗口或文档对象的调用都可能不起作用。

有没有办法更改绝对div的左上方?我在链接中找不到。我没有这样做,但我认为您应该使用setStyle()来实现这一点。对象设置样式({位置:'绝对',顶部:'10px',左侧:'10px'});