【问题标题】:How to excecute a javaScript method from flex如何从 flex 执行 javaScript 方法
【发布时间】:2011-10-21 13:37:52
【问题描述】:

我正在尝试从 facebook 注销,不仅从我的应用程序也从 facebook 注销。我正在使用 Graph API 桌面版本,并且正在使用 flex 进行编码。

有没有办法让用户从应用程序和 Facebook 中注销???我认为也许使用 javaScript 方法 FB.logout() 我可以做到,但我不知道正确的方法。

我的意思是,我尝试:

ExternalInterface.call("FB.logout()");

但它会抛出一个错误,提示此容器中没有 externalInterface...

提前致谢!!!

【问题讨论】:

  • 听起来可能是页面 HTML 中的 allowScriptAccess 设置不允许 ExternalInterface 调用。 kb2.adobe.com/cps/164/tn_16494.html
  • @Lars Blåsjö 好的,谢谢你的信息......你知道我可以在哪里设置 allowScriptAccess = always???

标签: javascript facebook actionscript logout


【解决方案1】:

确保在 html 中设置了 allowScriptAccess。如果您使用的是 swfobject,您可以通过 params 对象进行设置。如果您使用的是普通的 object 标签,请将其设置为嵌套的 param 元素,即:

<param name="allowScriptAccess" value="always">

另外,ExternalInterface 会自动构建函数调用,因此您需要删除调用括号 (),即

// Don't need the parens, EI will add them
ExternalInterface.call("FB.logout");

希望有帮助!干杯。

【讨论】:

  • 谢谢...问题是我真的知道如何设置此属性,我的意思是,我不知道我必须在哪个对象中设置它...谢谢您的帮助! !
  • 您是否使用 flex 来生成最终的 html 页面?如果是这样,您可以进入 &lt;project root&gt;/html-template/index.template.html 的文件并查找 swfobject JS 嵌入代码。在那个 JS 中,有一个 params 对象,默认情况下,它的 allowscriptaccess 属性设置为 sameDomain。如果您从不同的域运行 swf,您需要将该字符串更改为 always,否则您可以不理会它。
  • 好吧,我认为我没有运气,因为我没有生成最终的 html 页面...
  • 好的,所以你创建了最终的 html 页面?您是否使用 swfobject 嵌入内容?
猜你喜欢
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 2012-11-07
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 2014-08-03
相关资源
最近更新 更多