flash getURL或navigateToURL弹出窗口被IE拦截方法

flash geturl或navigatetourl弹出窗口被ie拦截方法

ie7和firefox(我使用的版本是2.0.0.11)会阻止用navigatetourl方法打开新窗口,而as2中的geturl方法则不会,让人很不爽。既然项目选择了as3开发,就只能想办法来解决。
 
首先当然想到的是externalinterface了,测试发现还是会被blocked。后来想添加wmode会不会有所帮助,于是在页面中添加wmode属性为opaque,果然ok了。
 
现提供as3中的geturl方法:
 
function geturl(url:http://www.111cn.net/flash_a/113/string,window:string=”_blank”):void{ var broswer:string=externalinterface.call(”function getbrowser(){return navigator.useragent}”) as string; if(broswer.indexof(”firefox”)!=-1 || broswer.indexof(”msie 7.0′)!=-1){ externalinterface.call(’window.open(”‘+url+’”,”‘+window+’”)’); }else{ navigatetourl(new urlrequest(url),window); }}
 
使用方法跟as2中的geturl一样。另外,我只测试了ie6/7,firefox2,并未对safari等其他浏览器做测试。最后,最最重要的就是在 html中把flash对象设置wmode属性为opaque或transparent。因为wmode属性默认为window,这表明此flash应用程序与html层没有任何交互。
 
上文的思路是用as call js来实现弹窗,这需要配合wmode=’opaque’或者wmode=’transparent’。
 
可是现在时代已经不同,游戏规则又变化了,上文的方法已经不再适用。
我刚测试,
火狐3.5.3测试是不会拦截的。
用ie7和ie8测试都被拦截。
 
真奇怪,有这种事情!于是我把收藏的几个flash酷站整出来一个个看过去,发现其中aps教程ou的网站上有_blank的内容不会被拦截~
调查了其网页的代码,发现和众多会被拦截的网站有一点不同:wmode。
 
解决方案:
终于发现通过设置wmode可以解决问题:当wmode=’window’(默认值)的时候,ie就不再拦截了。
这也许和ie下activex的机制有关吧。
上面引用的文章中提到的 “最最重要的就是在 html中把flash对象设置wmode属性为opaque或transparent” 这个也不用太担心。wmode为window的时候仍然可以call js。
 
虽然有解决方法了,可是我又很不情愿把wmode改成window。看来我还得和js通信,让js那边负责绕过拦截。
 
不过仔细想想其实问题不大,因为我们国内的网友的局势很有趣。
一般用火狐或者ie7+或者safari、google chrome的都是爱赶潮流的,或者是玩过各种web2.0产品的,算是高端一些的网民。这批人都懂得屏蔽是个啥意思,“屏蔽弹窗”这样的善意功能也能更好地起作用。这批人往往都会设置白名单,所以并不需要担心他们由于浏览器屏蔽而访问不了内容。
而剩下的大部分使用xp+原装ie6的用户,很多并不是对网络很有热情,正好这部分用户的浏览器也不会拦截我们flash,他们也不用学会网络过滤设置。
嘿嘿,各司其位,自然和谐。
 
几种wmode的不同
额,顺便罗列一下wmode的几点不同。总结了几种wmode有什么不同,各自符合什么情况使用:
window是默认的,窗口模式,吃cpu不严重
transparent透明无窗口模式
opaque不透明无窗口模式
效率最高的是window模式
透明用transparent
而需要动态交互(比如js)或者window模式不稳定的情况下用opaque
window和transparent在ie6的iframe下拖动会出现花屏——个人经验。
还有一点,无窗口模式消耗资源大,但是能保证帧频

时间: 2024-09-27 22:44:02

flash getURL或navigateToURL弹出窗口被IE拦截方法的相关文章

jquery 判断弹出窗口是否被拦截

<!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"> <head> <meta http-equiv="content-

JavaScript页面刷新与弹出窗口问题的解决方法_javascript技巧

一.无提示刷新网页 大家有没有发现,有些网页,刷新的时候,会弹出一个提示窗口,点"确定"才会刷新.而有的页面不会提示,不弹出提示窗口,直接就刷新了. 如果页面没有form,则不会弹出提示窗口. 如果页面有form表单, a)< form method="post" ...> 会弹出提示窗口 b)< form method="get" ...> 不会弹出 二.javascript刷新页面的方法 window.location

今天才知道弹出窗口不被拦截是用&amp;amp;lt;div&amp;amp;gt;,这个&amp;amp;lt;div&amp;amp;gt;是怎么做的?给我一个例子吧,这个弹出窗口被拦截,把我折腾得半死了,行行好吧,各位老大!

问题描述 请确认:<div>真的不会被拦截吗?说明,我的项目主要是在内网上用,要求不是很高的. 解决方案 解决方案二:很明显div不会被拦截客户端只拦截程序打开的窗口解决方案三:试试<script>showModalDialog('http://www.xxx.com')</script>解决方案四:,我的项目主要是在内网上用?????????????/那还不简单?维护起来又方便...一样还是用弹出窗口...只要把那些拦截窗口的软件干掉...OK!!!!解决方案五:老大

JS添加可信站点、修改ActiveX安全设置,禁用弹出窗口阻止程序的方法

为了满足将网站加入到可信站点中,使用系统的控件,在弹出窗口的时候不用提示用户.可以通过下面的方法实现:首先,了解一下可以设置的值和含义. 可信站点的注册表项目录HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range[*]ActiveX控件的注册表项目录HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentV

使用POST方式弹出窗口的两种方法示例介绍_javascript技巧

最近在做一个功能需要弹窗,但是不能用get方式,因为get方式对url的长度有限制,所以必须用post,总结了两个方法 1. 复制代码 代码如下: var $form1=$("<form action='"+url+"' id='f' name='f' method='post'></form>"); $form1.append($("<input type='hidden' name='"+i+"' va

QQ空间说说不弹出窗口提示的设置方法

如下图所示如果有人评我们QQ空间就会有弹出消息提示了 现在我们要关闭和,点击QQ空间里面的"设置"之后找到下面的"空间设置"然后点击打开进入 现在大进入到QQ空间设置面板我们找到"通知和提醒"去掉QQ客户端弹窗通知"下面的两个勾勾,点击"保存设置"如下图所示. 好了到了这里关于设置说说不弹窗口就介绍完了,大家快去试一下吧.

弹出窗口总结收集(续)

弹出窗口|弹出窗口   this.Response.Write("<Script>window.open('WebForm7.aspx','','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=750,height=470,left=80,top=40');</script>"); 弹出跟你当前的窗口有没有菜单工具栏没有关系,

制作Javascript弹出窗口技巧九则

javascript|弹出窗口|技巧 经常上网的朋友可能会到过这样一些网站,一进入首页立刻会弹出一个窗口,或者按一个连接或按钮弹出,通常在这个窗口里会显示一些注意事项.版权信息.警告.欢迎光顾之类的话或者作者想要特别提示的信息.其实制作这样的页面效果非常的容易,只要往该页面的HTML里加入几段Javascript代码即可实现.下面俺就带您剖析它的奥秘. 1.最基本的弹出窗口代码 其实代码非常简单: < SCRIPT LANGUAGE="javascript"> < !

增加网站流量方法之ASP.NET弹出窗口技术

asp.net|弹出窗口|流量 作为Microsoft的最新建立动态Web网站的工具,ASP.NET相对于ASP和JSP在改变原始的Web编程方式方面有了长足的长进.它的代码与页面分离技术(CodeBehind)以及完善的Web服务器控件为程序员提供了一个更加符合传统编程的Web服务器端开发方式.但Web编程还是有着与传统编程不相同的特点,这些特点决定了ASP.NET编程中必须以一些特殊的技巧来完成程序要求,弹出窗口正是这类编程方式的代表.相当多的编程书籍对弹出窗口采取缄默或者一语带过,似乎看不