2010-04-27 110 views
2

我正在尝试创建一个小型Facebook应用程序并将它关联到选项卡中的粉丝页面。我正在尝试在页面中包含一个外部JavaScript文件,并在按钮单击事件中调用方法。FBML中的外部JS用法 - 无法访问外部脚本

下面是代码的一部分

<script language="Javascript" src="http://mysite.com/fb.js"></script> 
<input type="button" value="Click....." onClick="javascript:showDialog();" /> 

fb.js的内容如下

function showDialog() { 
    new Dialog().showMessage('Dialog', 'Button clickeed'); 
} 

当我在我的粉丝页面加载的标签,它显示了一个错误“不能让外部脚本“,而当我直接加载画布网址并点击按钮时,它会起作用[显示对话框]。

脚本是否仅包含在画布上而不在配置文件页面上的作品?

我还有一个问题,虽然 最初我有脚本src作为相对路径,但它错误出现了同样的错误 - “不允许外部脚本”。我不能使用外部脚本的相对路径吗?

回答

1

这一定与application tabs的具体行为有关。

应用程序选项卡略微 不同于画布页面。当 用户第一次转到选项卡时,它处于 被动模式。这意味着应用程序 无法自动播放Flash或加载 JavaScript。一旦用户与 标签进行了交互 - 就像点击Flash 对象一样,该页面变为活动状态,因此它可以播放Flash,执行JavaScript, 等等。

看起来像应用程序选项卡,它需要嵌入FBML而不是外部资源。

+0

感谢彼得,但我没有在上面的例子中加载页面加载任何onLoad事件。 从可维护性的角度来看,我的真实应用程序将有更多的JS内容,并将其分离出来,在外部JS中更有意义。 – santhakr 2010-04-28 00:24:56

0

难道这不是问题吗? http://developers.facebook.com/docs/fbjs

“大多数允许开发人员在他们的域中嵌入JavaScript的开发者强制开发人员使用IFrame来对他们的代码进行沙箱化,Facebook采取了不同的方法来解决这个问题。和变量名称)预先加上您的应用程序ID。“