`
pmfou_site
  • 浏览: 28777 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

解决FLASH与DIV覆盖遮挡以及FF无法显示innerHTML等元素的方法

 
阅读更多
1,描述
一段倒计时的JS脚本,参见我上篇文章,在美工添加了flash后,出现DIV层被FLASH遮挡的问题,应该说这是个经典问题,我也是找了半天找到了不同浏览器下FLASH、DIV的遮挡解决办法;
网上有用CSS:z-index来解决问题,但其实效果不好
真正的解决方法是:
对于IE,对与<object>中添加如下标签:<param name="wmode" value="transparent">,值得说明的是value的值不止一种,有需要可以网上搜寻;
对于FF和CHROME,上面设置是没有效果的,需要在<embed>标签中添加如下属性:wmode="transparent";
从此完美解决了

示例: 请仔细察看添加的两个参数。
2,新的问题
这次的项目中,按照上面方法确实解决了IE和CHROME下的问题,但是在FF下依然无法显示倒计时<div>,奇怪的是在上次项目中,是完全解决的,在FF也是正常的,以至于我把问题着眼点放在了flash和div层的遮挡上来,网上搜寻半天,无所查获。
一篇文章提点了我:
来看一下本来的代码:
LiveClock.innerHTML = "现在离"+symbol+"结束还有"+hour2+"小时"+minute2+"分"+second2+"秒" ;
没有用Jquery库;
这段代码在IE和CHROME下都是正常的,在火狐下却无法显示倒计时;
在百思不的其解,先后以为是FF对innerHTML片段支持不好,在网上也发现了一些关于这方面的BUG和一些解决方法,但是没有解决我的问题;

后来发现真正的代码是:
document.getElementById("LiveClock").innerHTML = "现在离"+symbol+"结束还有"+hour2+"小时"+minute2+"分"+second2+"秒";
看出了没有
居然是这个原因,在FF下,定位标签必须是getElementById方法,在IE和CHROME下完全正常,这掩盖的代码的问题,按照严格的W3C文档来说,确实火狐是正确的,但是显得比较死板。
而且在测试代码功能的时候,其实我还试了FF,完全是正常的,那时候也没有用getElementById,但是显示也是正常的,后来明白,测试功能的时候,没有过于复杂的HTML标签,就一个div框,所以没有发现这个问题。

可能有用的一些文章:http://huangyunbin.iteye.com/blog/1110675
http://hi.baidu.com/cylic12345/blog/item/01c4b6c9ff654710be09e621.html
http://www.ittang.com/2010/0128/10682.html
3,修改添加3秒倒计时功能(待添加)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics