我想知道是否有一种Javascript方式来检测用户是否安装了任何类型的闪存阻止插件,以便我能够正确容纳这些用户。
例如,我使用'click to flash',但是使用SiFR渲染文本的网站上散布着“点击闪存”按钮,这非常烦人。因此我不在设计中使用SiFR。但是,如果我能够发现安装了闪存阻塞插件,我就不会调用SiFR功能。
有什么想法吗?
答案 0 :(得分:5)
看看http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html。您可以在页面加载后调用以下内容。
var movie = window.document.movie;
try {
//if the movie is blocked then PercentLoaded() should through an exception
if (movie.PercentLoaded() > 0) {
//Movie loaded or is loading
}
}
catch (e) {
//Movie is blocked
}
答案 1 :(得分:2)
soundmanager2
JS库使用电影参考的PercentLoaded
功能
摘录:
return (flash && 'PercentLoaded' in flash ? flash.PercentLoaded() : null);
有趣的语法注释... Flash / ExternalInterface(ActiveX / NPAPI)桥接方法不是typeof“function”,也不是instanceof Function,但仍然有效。另外,JSLint不喜欢(Flash中的'PercentLoaded')式语法,并推荐hasOwnProperty(),在这种情况下不起作用。此外,使用(flash&& flash.PercentLoaded)会导致IE抛出“对象不支持此属性或方法”。因此,必须使用'in'语法。
要获得对Flash电影的引用,this page可能会很有用。