www.51flex.net
好东西大家一起分享 只说技术不拉家常

会报如下错误
Alternate HTML content should be placed here. This content requires the Adobe Flash Player.

如果你是用IE6.0 发现出现这样的错误  是不是换成IE7.0就可以了? 当然不是

网上有一种说法就是 说flash的版本过低

我觉得没有说到精髓的地方

我就遇到了以下的问题
我也是出现了以上的错误  然后把ie6 换成了 ie7 没用 并且去adobe下载了最新的 flash player debug版本

重新安装一次又一次 压根没有用  郁闷啊

后来打开 flex 工程的html 页面 查看了它的源码
发现有这么一个函数

var hasProductInstall = DetectFlashVer(6, 0, 65);

// Version check based upon the values defined in globals
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

if ( !hasProductInstall && hasRequestedVersion )   则出现以上的错误

DetectFlashVer 这个函数来自于 AC_OETags.js 文件里面
打开这个文件 发现 如果是 flash9.0 ze则运行到如下代码
else if ( isIE && isWin && !isOpera ) {
  flashVer = ControlVersion();

从这里返回 flash的版本
wo我们再来看
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;


看到没有 这些变量是如此定义 而我在调试中 发现 我的isWin == false 所以 无法取得flash版本号

var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false; 则这个返回false

为什么呢?  发现navigator.appVersion  = 4.0(competable;MsIE 6.0)      我在别人的好的机器上测试过 后面还有一串win32 .....的字串  而我的取出来的没有   难怪 出错

为什么? 不是很了解  我现在怀疑是 用了一些杀流氓软件的 安全工具  的IE修复照成的(这里就不说名字了)

解决方案  在IE7.0的  internet  选项的 高级 中 重置浏览器    这个才叫浏览器超级修复工具 可以重置里面任何设置

posted on 2007-08-22 17:42  aixia  阅读(9804)  评论(2编辑  收藏  举报