FBML 中的外部 JS 使用 - 无法访问外部脚本

发布于 2024-08-30 11:59:42 字数 712 浏览 1 评论 0原文

我正在尝试创建一个小型 Facebook 应用程序并将其关联到选项卡中的粉丝页面。我试图在我的页面中包含外部 javascript 文件并调用按钮单击事件的方法。

下面是fb.js的部分代码

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

内容如下

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

当我加载粉丝页面中的选项卡时,它显示错误“无法允许外部脚本”,而当我加载画布url [http://apps.facebook.com/...]直接点击按钮,就可以了[显示对话框]。

脚本是否只包含在画布上而不是个人资料页面上的作品?

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

I am trying to create a small facebook app and associate it to a fan page in a tab. I am trying to include an external javascript file in my page and call a method on a button click event.

Below is a part of the code

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

content of fb.js is as below

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

When I load the tab in my fan page, it shows an error "Cannot allow external script", whereas when I load the canvas url [http://apps.facebook.com/...] directly and click on the button, it works [shows the dialog].

Does script include works only on the canvas and not on the profile page?

I have another question though
Initially I had the script src as a relative path but it errored out with the same error - "Cannot allow external script". Can't I use relative path for the external scripts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

舞袖。长 2024-09-06 11:59:42

它肯定与应用程序选项卡的特定行为有关。

应用程序选项卡略有
与画布页面不同。当一个
用户首先进入一个选项卡,它位于
被动模式。这意味着应用程序
无法自动播放 Flash 或加载
JavaScript。一旦用户与
选项卡 – 就像单击 Flash
对象,页面变为活动状态,因此
可以播放Flash,执行JavaScript,
等等。

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

It's bound to be related to the specific behavior of application tabs.

Application tabs are slightly
different than canvas pages. When a
user first goes to a tab, it is in
passive mode. This means applications
cannot autoplay Flash or onload
JavaScript. Once user interacts with
the tab – like clicking the Flash
object, the page becomes active, so it
can play Flash, execute JavaScript,
and so forth.

Looks like for application tabs, it needs to be embedded in the FBML and not an external resource.

吾家有女初长成 2024-09-06 11:59:42

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

“大多数提供商允许开发者在他们的域中嵌入 JavaScript 迫使开发人员使用 IFrame 来沙箱他们的代码。Facebook 对您提供给我们的 JavaScript 采取了不同的方法,并且任何标识符(函数和变量名称)都会以您的应用程序 ID 开头。”

Could this not be the problem? http://developers.facebook.com/docs/fbjs

"Most providers who allow developers to embed JavaScript within their domain force developers to use IFrames to sandbox their code. Facebook has taken a different approach to this problem. JavaScript that you give us gets parsed, and any identifiers (function and variable names) get prepended with your application ID."

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文