解决flash与js交互、flash跨域交互、flash跨域提交

我们引用本地flash,实现flash与js双向交互。

   

JavaScript代码
  1. function thisMovie(movieName) {   
  2.      if (window.document[movieName]){   
  3.       return window.document[movieName];   
  4.     }else if (navigator.appName.indexOf("Microsoft")==-1){   
  5.       if (document.embeds && document.embeds[movieName])   
  6.       return document.embeds[movieName];   
  7.     }else{   
  8.       return document.getElementById(movieName);   
  9.     }   
  10. }  

在提交数据时,flash无法跨域http访问。于是将flash资源放置该服务器下,接下来问题是flash与js不在一个域下,又有了交互跨域问题。解决办法是将原来

 

XML/HTML代码
  1. <param name="allowScriptAccess" value="sameDomain" />  
  2.   
  3. <embed src="" allowScriptAccess="sameDomain"/>  

改为了可跨域访问

 

XML/HTML代码
  1. <param name="allowScriptAccess" value="always" />  
  2.   
  3. <embed src="" allowScriptAccess="always"/>    

备注第二行里的 allowScriptAccess="always"不加的话在FF下跨域是有问题的.

那如果我们用浏览器访问http://example1.com/index.php这个页面,在这个页面中引用了http://example2.com /flash.swf这个flash文件,然后在flash代码中向http://example3.com/webservice.php发送HTTP 请求。

就需要在example3中添加crossdomain.xml,允许example2的访问。

 

XML/HTML代码
  1. <cross-domain-policy>  
  2.   
  3. <allow-access-from domain="example2.com" />  
  4.   
  5. </cross-domain-policy>  

也可以把权限全打开

 

XML/HTML代码
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">  
  3. <cross-domain-policy>  
  4. <allow-access-from domain="*" />  
  5. <allow-http-request-headers-from domain="*" headers="*"/>  
  6. </cross-domain-policy>  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/andyxm/archive/2010/01/21/5219919.aspx

参考:

http://blog.s135.com/ajaxcdr/
http://blog.sina.com.cn/s/blog_4a9b5fcf0100gw6h.html

http://blog.csdn.net/RangerCH/archive/2009/09/02/4507925.aspx

上一篇: Tomato DualWAN网络双拨号为上网加速   下一篇: flash cookie常用目录

提交疑问

回顶部