为了兼容多数浏览器,我们一般同时采用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]。
分享到:
相关推荐
- Firefox、Chrome、Safari 和 Opera 等浏览器需要特定的前缀,如 `-webkit-`、`-moz-`、`-ms-` 和 `-o-`,以支持某些 CSS3 属性。 14. **跨域 AJAX 请求** - IE 支持 `XDomainRequest` 对象处理跨域 AJAX,而...
不同的浏览器使用不同的呈现引擎,例如,Chrome和Opera使用Blink,Firefox使用Gecko,Safari使用WebKit,而Internet Explorer和Edge则使用Trident和EdgeHTML。JavaScript可以用来检测当前浏览器使用的呈现引擎,通过...
在JavaScript编程中,封装是面向对象编程的核心概念之一,它涉及将数据和操作数据的方法捆绑在一起,形成一个独立的对象,目的是隐藏对象的实现细节,对外提供简洁的接口。封装能够提高代码的可维护性、可重用性以及...
- **SharedWorker**:允许多个窗口或标签页共享同一个Worker对象,便于实现跨窗口通信。 - **LocalStorage/SessionStorage**:通过监听存储事件实现不同标签页间的通信。 - 示例代码: ```javascript // 监听...
除了获取浏览器基础信息外,我们还可以使用`window.location`对象来获取当前浏览器窗口中的URL地址以及与之相关的参数。`window.location`对象提供了许多属性,可以用来解析当前URL的不同部分,如下: - `location....
我们可以通过document.documentElement.clientWidth获取phys.width,而通过window.screen.width获取device-width。例如,iPhone 6的phys.width为750px,而device-width为375px。 二、 浏览器默认行为 我们知道,...
-webkit-border-radius:0}.s_btn.btnhover{background:#317ef3;border-bottom:1px solid #2868c8;*border-bottom:0;box-shadow:1px 1px 1px #ccc}.s_btn_h{background:#3075dc;box-shadow:inset 1px 1px 5px #2964bb...