JavaScript中跨域调用Flash的方法
要做一个页面上短信息的提示音的功能,本来想用HTML5中Audio+IE下的bgsound来实现,可是发现每种浏览器对Audio的解码类型还不一样,顿时有种崩溃的感觉。没办法还是用Flash稳妥一点吧。
相信JavaScript与Flash交互大家都会有所接触或者有所耳闻。其实我也是第一次整这个玩意。具体的方法就不说了,很多资料。
开始的时候功能都做得差不多了,实现和没问题。可是就是到了最后,将swf文件放到资源服务上后再调用时出来问题,我就想肯定又是让人蛋疼的跨域问题(CrossDomain)。后来在网上翻了半天终于把问题搞定。
首先,要让你的Flash能访问页面,你需要在<embed>标签中加上allowscriptaccess=always这段。
其次,你要让你的页面中的JavaScript能访问Flash则需要在你的Flash脚本中加上如下内容:
import flash.system.Security;
Security.allowDomain('www.jb51.net');
其中www.jb51.net需要替换成你自己的页面的domain,如果你不是很清楚你可以使用alert(document.domain)来查看。如果你需要多个domain都访问这个Flash你可以添加多条allowDomain的记录。
相关推荐
-
javascript获取flash版本号的方法
本文实例讲述了javascript获取flash版本号的方法.分享给大家供大家参考.具体分析如下: 下面我们来介绍两个js函数判断用户是否安装了flash,如果安装了flash再来获取 flash版本号并且给出提示. 例1 获取各浏览器的版本号,如需获取具体版本号数字 复制代码 代码如下: function flashChecker() { var hasFlash = 0; //是否安装了flash var flashVersion = 0; //flash版本 var
-
javascript检查浏览器是否支持flash的实现代码
javascript检查浏览器是否支持flash,程序输出结果: <script> function flashChecker() { var hasFlash = 0; //是否安装了flash var flashVersion = 0; //flash版本 if (document.all) { var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); if (swf) { hasFlash = 1; VSwf = swf.
-
js实现延时加载Flash的方法
本文实例讲述了js实现延时加载Flash的方法.分享给大家供大家参考,具体如下: 当页面中包含自动播放视频的flash播放器时,flash的流媒体播放会一直不停的下载视频(哪怕你点击了播放暂停/停止也一样在不停下载),这样会影响到页面其它元素的加载. 最简单的优化办法就是让Flash一开始不要播放:当然,你可以修改fla源文件,让视频播放一开始就处于暂停,直到用户点击了播放按钮.但问题是,如果您嵌入的是没有源文件的flash动画,这种路子就走不通了. 思路: 可以先在放置flash的地方,放一张
-
Java/JS获取flash高宽的具体方法
JS: 设置 embed 高度和宽度可以改变 flash 的高度和宽度,从而获取. 复制代码 代码如下: <!DOCTYPE HTML> <html> <body> <embed src="test550X400.swf" id="flash" width="550px" height="400px"/> <script type="text/javascript
-
JavaScript通过代码调用Flash显示的方法
本文实例讲述了JavaScript通过代码调用Flash显示的方法.分享给大家供大家参考,具体如下: <script type="text/javascript" language="javascript" src="Scripts/swfobject.js"></script> <script language="javascript"> function load(){ var swfV
-
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
我们在网页上放置一个复制按钮,主要用来方便用户复制链接之类的复杂文本,以往的做法是,通过JS依靠Flash,甚至借助jQuery庞大的js库来实现文本复制到剪贴板的.今天我要给大家介绍的是一款极现代的,不需要flash,不依赖任何其他js库的非常小的插件,它叫clipboard.js. 运行效果图: HTML 首先加载本地clipboard.js文件. <script src="clipboard.min.js"></script> 然后就是在body中加上要复
-
javascript检测flash插件是否被禁用的方法
本文实例讲述了javascript检测flash插件是否被禁用的方法.分享给大家供大家参考,具体如下: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author
-
js怎么判断flash swf文件是否加载完毕
js怎么判断flash是否加载完毕了呢? 我们怎么在flash加载完毕之时,回调一个我们设定的js函数? 这个问题,一直困扰了我很久,直到今天,请教了一个非常牛B的人物之后,突然来了感觉! 呵呵,也许,这个问题在你们看来不是问题,不过对于我来说,确实是个问题,因为我一直不知道该怎么判断swf文件是否加载完毕了? 从前都是只知道img.onload等等. 好了,言归正传,我们到底该怎样判断一个flash是否加载完了呢? 没错,就是轮询,然后判断flash的某个方法是否能正常运行? 示例如下(伪代码
-
JavaScript获取flash对象与网上的有所不同
关于js获取flash对象,网上有非常多的例子,我也尝试了不少方法. 虽然都能用,但是没有我最想要的东西, 后来看了下百度的,虽然很规范,各种情况都考虑到了,但是代码量却不是不容乐观, 前前后后将近20行代码,压缩后也有 864 个字节. 所以本文诞生了. 我想测试并分享下网上收集的几种我比较满意的方法. 也顺便请大家帮忙测试下兼容性,有不兼容的在下面留个言,最好写上浏览器版本,这样我也好测试并修复代码. 下面来看代码吧. 复制代码 代码如下: function getFlashMovieObj
-
JavaScript中跨域调用Flash的方法
要做一个页面上短信息的提示音的功能,本来想用HTML5中Audio+IE下的bgsound来实现,可是发现每种浏览器对Audio的解码类型还不一样,顿时有种崩溃的感觉.没办法还是用Flash稳妥一点吧. 相信JavaScript与Flash交互大家都会有所接触或者有所耳闻.其实我也是第一次整这个玩意.具体的方法就不说了,很多资料. 开始的时候功能都做得差不多了,实现和没问题.可是就是到了最后,将swf文件放到资源服务上后再调用时出来问题,我就想肯定又是让人蛋疼的跨域问题(CrossDomain)
-
JavaScript中跨域问题的深入理解
前言: 学习JavaScript的童鞋都知道,我们在发送网络请求,也就是我们在地址栏输入一个网址,就会自动跳转到当前网址,比如在浏览器网址输入www.baidu.com,浏览器就会自动跳转到百度的的首页 而浏览器发送网络请求需要三和基本的要素 其实完整的url路径应该是:http://www.baidu.com:80浏览器在发送网络请求的时候回默认加上协议:http 和端口号80. 也就是完整的url至少 包含三个部分 1.http/https 传输协议 2.www.baidu.com 域名 3
-
json跨域调用python的方法详解
本文实例讲述了json跨域调用python的方法.分享给大家供大家参考,具体如下: 客户端: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
-
JavaScript跨域调用基于JSON的RESTful API
1. 基本术语 AJAX(Asynchronous JavaScript And XML,异步JavaScript和XML):AJAX是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. JSON(JavaScript Object Notation):JSON是一种轻量级的数据交换格式,可以看成是由大括号包裹起来的多个"key/value"对,格式如下:{"f
-
javascript跨域的4种方法和原理详解
下表给出了相对http://store.company.com/dir/page.html同源检测的结果: 要解决跨域的问题,我们可以使用以下几种方法: 一.通过jsonp跨域 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的.但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的. 比如,有个a.html页面,它里面的代码需要利用ajax获取一个不同域上的json数据,假设这个json数据地址是http://example.com
-
JavaScript 跨域之POST实现方法
javascript 跨域是一个很常见的问题,其中 jsonp 是一个最常用的手段,但是 jsonp 只支持 get,不支持 post,所以如果想通过 jsonp 来 post 一些数据,就头大了. 此处通过在一个 iframe 中生成 form 表单的形式来实现 post,并通过 postMessage 来向调用者返回值. 第一步,我们先实现一个接受 jsonp 的后端代码,至于用什么语言实现,各位自已决定. c#代码是: protected void Page_Load(object sen
-
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
最近项目中需要跨域调用其他项目的数据,其他项目也是使用的EasyUI的datagrid组件,开始以为直接在datagrid的url属性定义为其他项目的url地址即可,可是测试下发现的确是返回了json数据但是json数据提示"invalid label" 错误,网上搜索了下错误解决办法,参考 "JavaScript处理Json的invalid label错误解决办法"的方法利用datagrid的loadData方法加载并转换了json还是提示上述错误,感觉原因不在格
-
javascript跨域方法、原理以及出现问题解决方法(详解)
javascript跨域访问是web开发者经常遇到的问题,什么是跨域,一个域上加载的脚本获取或操作另一个域上的文档属性,下面将列出三种实现javascript跨域方法: 1.基于iframe实现跨域 基于iframe实现的跨域要求两个域具有aa.xx.com,bb.xx.com这种特点,也就是两个页面必须属于一个基础域(例如都是xxx.com,或是xxx.com.cn),使用同一协议(例如都是 http)和同一端口(例如都是80),这样在两个页面中同时添加document.domain,就可以实
-
JavaScript跨域方法汇总
做Web开发经常需要面对跨域问题,跨域问题的根源是浏览器安全中的同源策略,比如说,对于http://www.a.com/1.html来说: 1.http://www.a.com/2.html是同源的: 2.https://www.a.com/2.html是不同源的,原因是协议不同: 3.http://www.a.com:8080/2.html是不同源的,原因是端口不同: 4.http://sub.a.com/2.html是不同源的,原因是主机不同. 在浏览器中,<script>.<img
随机推荐
- jQuery基于cookie实现换肤功能实例
- 进制转换算法原理(二进制 八进制 十进制 十六进制)
- Sql server中内部函数fn_PhysLocFormatter存在解析错误详解
- sqlserver2008锁表语句详解(锁定数据库一个表)
- Java 动态代理与CGLIB详细介绍
- perl 常用系统函数列表
- C#,winform,ShowDialog,子窗体向父窗体传值
- javascript小数计算出现近似值的解决办法
- php检查字符串中是否包含7位GSM字符的方法
- Python迭代和迭代器详解
- JQuery中阻止事件冒泡几种方式及其区别介绍
- PHP 服务器配置(使用Apache及IIS两种方法)
- jQuery+ajax实现修改密码验证功能实例详解
- Lazy Load 延迟加载图片的 jQuery 插件
- JQuery DIV 动态隐藏和显示的方法
- 虚拟主机安全设置
- C#读取文件MD5值的实现代码
- PHP函数checkdnsrr用法详解(Windows平台用法)
- iOS中block的定义与使用
- java 随机生成6位短信验证码实例代码