因为FireFox和IE的高度计算方式不同,所以导致了SWFObject嵌入SWF文件时的某些问题。

这两天就遇到了奇怪的问题,在嵌入SWF的时候将高度设置为100%的时候,IE显示正常,FF下愣是不显示,搜索了一下发现官网的第一条就是关于这个问题的(SWFObject Wiki FAQ)。官网的建议是这样的:

<style type="text/css" media="screen">
      html, body, #containera, #containerb { height:100%; }
      body { margin:0; padding:0; overflow:hidden; }
    </style>

不过这种灵活性比较低。我现在遇到的情况是这样的,布局分三块:

第一块:头部和导航栏

第二块:主内容

第三块:底部

第一块和底部的高度的确定的,分别为120px和80px。主内容块的高度为整个可视区域减去120px+80px;

因此就需要对SWFObject推荐的嵌入代码作如下修改:

<script type="text/javascript">
        var flashvars = {};
        var params = {
            menu: "false",
            scale: "noScale",
            bgcolor: "#FFFFFF"
        };
        window.onresize = function() { 
            document.getElementById("altContent").height = document.body.clientHeight – 160;
        }
        swfobject.embedSWF("AlbumManager.swf", "altContent", "100%", document.body.clientHeight – 160, "9.0.0", "expressInstall.swf", flashvars, params);
    </script>

也就是说使用JavaScript模拟了“100% ”。

这个东东是Fraser推荐我用的,的确很不错。之前我一直用mht格式保存网页,这个将网页保存为pdf格式的小工具比较实用。

官方网站:http://www.pdfdownload.org/

提供了两种方式:

  1. FireFox的插件IE7 &8 的插件
  2. 网页方式(2009-3-19早上无法访问,服务器错误)

推荐用插件的方式,这样非常方便,而且支持中文:)

从cnBeta上发现的, 实在太好了。转载一下:)

在设计网页的时候会发现,在IE7.0的环境下效果很好,但是在其他人的电脑里你的网页确是错位严重,不堪入目。(因为现在ie6.0的用户还是占多数的)
下面介绍两个软件,用以搭建多个IE版本的兼容测试环境。

第一款: 在国外的一个网站上发现有一个插件能让IE6和IE7跑在同一个系统中。免安装,解压即能用!
下载地址: http://authors.aspalliance.com/HabdulMalak/IE6Eolas.zip

这款软件只能模拟IE6.0的环境,对于小范围的测试,这款绿色、便捷的软件非常实用。打开界面和IE7.0的是一样的,只是显示效果和IE6.0一样。

第二款:安装多个版本的IE在您的PC上
效果图:

下载地址:Multiple IE installer (10.3MB)

前天写了一篇博文关于onload事件在FireFox和IE下的区别。(暂时不测试Opera,NetScape,Safari等浏览器)

再补充一下:

IE是在Document内容载入前即执行。

而FireFox是等待Document内容全部载入后再执行。

具体表现是,如果在onload中要获取某个element是取不到的,而FireFox却没有问题。

一种比较好的方法就是把 window.onload=onload();写到html的末尾。

或者设置一个定时器,大约3秒左右执行,但这个并不怎么保险:)

HTML真是高深莫测。

PS:最近公司.Net组人手紧缺,So,我又做老本行了。。。亲爱的Flex呀,啥时候才能回去呀?!

这个还是很有用的,特别是Flex对Flash Player的版本要求还是有那么点高的。

记录一下,呵呵:)

<script type=”text/javascript”>
function getFlashVer() {
var f=”";
var n=navigator;
if (n.plugins && n.plugins.length) {
for (var ii=0;ii<n.plugins.length;ii++) {
if (n.plugins[ii].name.indexOf(‘Shockwave Flash’)!=-1) {
f=n.plugins[ii].description.split(‘Shockwave Flash ‘)[1].split(‘ ‘)[0];
break;
}
}
} else if (window.ActiveXObject) {
for (var ii=10;ii>=2;ii–) {
try {
var fl=eval(“new ActiveXObject(‘ShockwaveFlash.ShockwaveFlash.”+ii+”‘);”);
if (fl) {f=ii + ‘.0′; break; }
}
catch(e) {}
}
}
document.write(“Flash Player version: <b>”+f+”</b>”);
}
getFlashVer();
</script>

© 2011 达达's Blog Suffusion theme by Sayontan Sinha