当前位置:首页 > 开发 > Web前端 > JavaScript > 正文

javascript与swf交互域问题

发表于: 2011-12-15   作者:citygu   来源:转载   浏览次数:
摘要: Javascript和swf在网页中交互一般可有以下几种情况: 1.swf和这些调用的javascript在同域 2.swf和这些调用的javascript在不同域,比如加载远程的swf然后call别地方的服务 对于swf跨域call服务的问题,可同过crossdomain.xml配置解决。 但对于加载远程的swf,默认情况下,根本不能将里面的方法成功注册为向javascript公开的方法
Javascript和swf在网页中交互一般可有以下几种情况:

1.swf和这些调用的javascript在同域

2.swf和这些调用的javascript在不同域,比如加载远程的swf然后call别地方的服务

对于swf跨域call服务的问题,可同过crossdomain.xml配置解决。

但对于加载远程的swf,默认情况下,根本不能将里面的方法成功注册为向javascript公开的方法,一般会报此类错误:

a) SecurityError: Error #2060: 安全沙箱冲突:ExternalInterface ,调用者 remote.com/test.swf(所加载的远程swf) 不能访问 127.0.0.1(本机的一个服务)

at flash.external::ExternalInterface$/_initJS()
at flash.external::ExternalInterface$/addCallback()

   ...

b) 错误: uncaught exception: Error calling method on NPObject! [plugin exception: Error in Actionscript. Use a try/catch block to find error.]

解决办法

对于a错误,是因为远程的swf加载到本地后没有权限去访问当前html文档,对于这个我们只需要在输出swf的时候设置 allowScriptAccess 属性,一般设置为always.即可解决。

对于b错误,是因为默认actionscript中不允许向将方法注册到不同域的 html文档中, 对于这个我们只需要在as中加一下代码即可解决:

import flash.system.Security;

Security.allowDomain("*");
Security.allowInsecureDomain("*");

 

文章转载自: hi.baidu.com/mebeta/blog/item/cc81b7dfb790461b49540330.html/cmtid/57ea9031b986c315eac4af6f

 

javascript与swf交互域问题

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
什么是同源策略? 同源策略阻止从一个域上加载的脚本获取或操作另一个域上的文档属性。也就是说,受
来源:http://www.jb51.net/article/31153.htm javascript跨域有两种情况: 1、基于同一父域的子域
一.html页面嵌套Flex需要用到 swfobject.js swfobject的使用是非常简单的,只需要包含 swfobject.js
许多时候,我们需要在2个或多个swf文件之间进行数据交互,比如说坐标定位,数据通讯等.这里Adobe公司已
跨域的意思就是不同域名之间的页面默认是无法通信的。因为浏览器默认是禁止跨域的; 图所示:chrome
---本方法来自网上,因最近项目需求,解决了三天未果,最终发现此文并测试可用。 一个 非常优雅绝妙
一、什么是跨域 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。但在安全限制的同时
Flex 与 JavaScript 实现交互!! FlexJavascript.mxml <?xml version="1.0" encoding="utf-8"?>
Silverlight和JavaScript交互介绍以及简单Demo演示,主要包括JavaScript操作Silverlight数据、Silve
在WebView中使用JavaScript   如果你想要载入的页面中用了JavaScript,你必须为你的WebView使能Ja
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号