为了兼容多数浏览器,我们一般同时采用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]。
分享到:
相关推荐
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; ...
底层基于(Chromium49/51)/(CEF3.2623/CEF3.2704)内核进行制作,支持系统XP,03,Vista,Win7/8/10 32/64。 技术支持: 内核: WebKit/Chromium/CEF3
内核: WebKit/Chromium/CEF3 (www.cefbuilds.com) 易框架: E(CEF3++) Template Library (www.ps-works.cn,交流,) PS: 关于无法播放flash问题的解决方法: 首先检查系统是否已经安装了相应版本的flash播放器,检查方法:...
最新的内核版本 (Version) WebKit 537.36 Chrome 74.0.3729.157 的CMake后的win32下Visual Studio 2015工程,解压后,请用vs2015(或以上)打开Platform-win32目录下cef.sln,本人Debug模式、Release模式下都编译...
1. **请求解析**: 当用户输入URL或点击链接时,WebKit首先解析请求并创建一个WebFrame对象来管理页面内容。 2. **资源加载**: WebKit使用网络栈加载HTML、CSS、JavaScript和其他资源。 3. **解析HTML**: 解析器将...
6. **WebRTC**:在支持的版本中,WebKit提供了实时通信功能,实现了视频通话和数据共享等功能。 **开发和调试** 开发基于WebKit的iPhone Web应用,开发者通常会使用Xcode,它是Apple官方的开发工具,集成了WebKit...
本篇文章将详细讲解如何在WinForm中使用WebKit控件实现这一功能,特别是在处理IE兼容性问题时的替代方案。 首先,我们来看C#自带的WebBrowser控件。这个控件允许我们在WinForm中嵌入一个浏览器,通过`...
6. **持续集成**:将测试集成到开发流程中,实现自动化测试,持续监控代码质量。 **六、总结** "WEBKIT测试TEST工程"是一个全方位的测试项目,涵盖了Webkit的各个方面。通过系统性的测试,我们可以确保Webkit的高...
这个项目的源代码可以作为学习如何在 QT 中实现更复杂浏览器功能的参考,例如书签管理、历史记录、多标签支持等。 总的来说,QT WebKit 提供了一个强大且灵活的框架,使得开发者可以在 QT 环境下构建功能完备的网页...
1. **安装WebKit.NET**:首先,你需要在项目中引用WebKit.NET库。可以通过NuGet包管理器来安装,或者从其官方网站下载最新版本的库并添加到项目中。 2. **创建WebKit控件**:在C#的UI设计界面或代码中,创建一个...
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/...
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, ...
Qt WebKit还支持响应JavaScript的`window.alert()`、`window.confirm()`和`window.prompt()`对话框,只需重写`QWebPage`的相应方法: ```cpp class CustomWebPage : public QWebPage { Q_OBJECT public: // ... ...
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 ...
在IT领域,尤其是在软件开发中,QtWebKit是一个非常重要的组件,它允许开发者在Qt应用程序中嵌入Web内容,并实现JavaScript与C++之间的交互。本文将深入探讨如何利用QtWebKit完成JavaScript对C++对象的访问,以帮助...