`

webkit/opera中window[name]获取flash对象的特殊实现

阅读更多

为了兼容多数浏览器,我们一般同时采用object和embed标签插入flash,如下:

<object id="mySwf" data="">  
    <embed src="" name="mySwf"/>  
</object>  

 

有时候需要获取到flash对象,因此给object添加了id,给embed添加了name,两者的值刚好相同。此时如果使用window[name]来获取flash对象,各浏览器的表现就不一致了:

<object id="mySwf" data="">  
    <embed src="" name="mySwf"/>  
</object>  
  
<script>  
    alert(window['mySwf'])   
</script>  

 

 

IE :能获取,元素为object

Firefox :undefined,不能获取

Opera :object HTMLCollection

Safari/Chrome :object HTMLCollection

 

可以看到,在Opera/Safar/Chrome获取到的是一个集合HTMLCollection,弹出其length是2,在Opera/Safari/chrome中分别取出第1,2个元素分别是object,embed元素。

 

基本如下:

IE,window['mySwf']中的mySwf指的是Object[id=mySwf]

 

Firefox,window['mySwf']没有获取到任何元素,不支持这么获取

 

Opera/Safari/Chrome,window['mySwf']同时获取id=mySwf,name=mySwf的元素

 

最后列出准确的获取flash对象的方式:

 

function getFlashObj(name){   
     return document[name] || window[name];   
}  

 

 

这种方式在IE中获取的仍然是object对象,Firefox/Opera/Safari/Chrome中获取的是embed。

 

注意,document[name]和window[name]顺序不能调过来,如下则是错误的

 

function getFlashObj(name){   
   return window[name] || document[name];   
}  

 

 

此外,也可判断浏览器,以下是钱兄 从adobe官网提供的函数:

 

function thisMovie(movieName) {   
        if (navigator.appName.indexOf("Microsoft") != -1) {   
             return window[movieName];   
         } else {   
            return document[movieName];   
         }   
}  

 

 

如果是IE使用window[movieName],其它浏览器则使用document[movieName]。

分享到:
评论

相关推荐

    android_webkit

    android_webkit android_webkit android_webkit android_webkit android_webkit android_webkit android_webkit android_webkit android_webkit

    易语言WebKit/Chromium/CEF3多标签浏览器-易语言

    底层基于(Chromium49/51)/(CEF3.2623/CEF3.2704)内核进行制作,支持系统XP,03,Vista,Win7/8/10 32/64。 技术支持:  内核: WebKit/Chromium/CEF3

    非IE内核 浏览器二开源码 windows/win32/VC++/vs/Webkit/Chrome/Chromium/CEF3

    最新的内核版本 (Version) WebKit 537.36 Chrome 74.0.3729.157 的CMake后的win32下Visual Studio 2015工程,解压后,请用vs2015(或以上)打开Platform-win32目录下cef.sln,本人Debug模式、Release模式下都编译...

    WEBKIT测试TEST工程

    WEBKIT测试工程

    易语言-易语言WebKit/Chromium/CEF3多标签浏览器

    内核: WebKit/Chromium/CEF3 (www.cefbuilds.com) 易框架: E(CEF3++) Template Library (www.ps-works.cn,交流,) PS: 关于无法播放flash问题的解决方法: 首先检查系统是否已经安装了相应版本的flash播放器,检查方法:...

    Webkit网址收集

    NULL 博文链接:https://yishizhu.iteye.com/blog/835202

    iphone webkit

    iphone webkit.网上收集的一点点资料。

    1.8wUA库.zip

    CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25 Mozilla/5.0 (iPod; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, ...

    C#在WinForm中使用WebKit传递js对象实现与网页交互的方法

    主要介绍了C#在WinForm中使用WebKit传递js对象实现与网页交互的方法,涉及针对WebBroswer控件及WebKit控件的相关使用技巧,需要的朋友可以参考下

    移动端浏览器ua大全 合集18248个

    M031 Build/IML74K) UC AppleWebKit/534.31 (KHTML, like Gecko) Mobile Safari/534.31 MQQBrowser/3.7/Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like ...

    python爬虫十万条UA User_Agent信息浏览器头信息包括手机

    FDR-A01w Build/HuaweiMediaPad) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 wap:Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X; zh-CN) AppleWebKit/537.51.1 (KHTML...

    node-webkit 可集成的Flash PPAPI插件

    node-webkit 可集成的Flash PPAPI插件 解压zip到nw.exe同级目录,zip中包含PepperFlash、package.json https://blog.csdn.net/tichangde/article/details/80358659

    百度下拉代码

    en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53", "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 ...

    User-Agent库useragent.js.zip

    一个简单的User-Agent库,可以从一条User-Agent字符串获取该用户的相关信息。 支持平台: Node.JS / (Windows) Classical ASP / (Windows) WScript / (Windows) CScript / Internet Explorer 6 / Google Chrome /...

    Java爬取web图片防盗链

    WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36 OPR/37.0.2178.32", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/...

    python爬虫五万条UA

    CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 MQQBrowser/8.9.9 Mobile/16C101 Safari/604.1 MttCustomUA/2 QBWebViewType/1 WKType/1 wap:Mozilla/5.0 (iPhone; ...

    HTML5如何用window.postMessage在网页间传递数据

    window.postMessage的功能是允许程序员跨域在两个窗口/frames间发送数据信息。基本上,它就像是跨域的AJAX,但不是浏览器跟服务器之间交互,而是在两个客户端之间通信。让我们来看一下window.postMessage是如何工作...

    Opera Next最新版 v24.0.1558.25官方中文版.zip

    Opera Next 是 Opera 最新推出的基于 Chromium 内核的浏览器,浏览器排版引擎由原先的 Presto 更换为高性能的 WebKit/Blink,是第一款基于 Blink 引擎的 Opera 浏览器,提供了更加快速和简便的上网体验。...

    关于windows下使用webkit或chrome浏览器内核总结

    关于windows下使用webkit或chrome浏览器内核总结

Global site tag (gtag.js) - Google Analytics