如下一段css:
min-height:100px;
_height:90px;
专为IE6定义了一个高度。
在用js获取这个元素的高度的时候,
会发现无论这个元素当前实际高度是多少,
在IE6下,通过dom.currentStyle['height']获取到的高度,
永远都是上述css中定义的高度,
而不是实际的高度值。
所以在用JS获取一个元素的高度的时候,
针对IE6出现的高度不对的bug,
可以从css上着手看看是否限定了高度。
如下一段css:
min-height:100px;
_height:90px;
专为IE6定义了一个高度。
在用js获取这个元素的高度的时候,
会发现无论这个元素当前实际高度是多少,
在IE6下,通过dom.currentStyle['height']获取到的高度,
永远都是上述css中定义的高度,
而不是实际的高度值。
所以在用JS获取一个元素的高度的时候,
针对IE6出现的高度不对的bug,
可以从css上着手看看是否限定了高度。
发现用phpmailer发送邮件,
被mysinamail.com的邮箱收到的时候,中文全部乱码。
注册一个mysinamail.com的邮箱,
进去看到邮箱右上角有编码方式选择,
但可惜只提供了两种:“Big5”和“GB2312”。
而发送的时候用的是UTF-8编码,
所以接收到之后就乱码了。
查阅网上资料,
查到的解决乱码问题的方法有两个:
标题添加编码设置,如:
?=UTF-8?B{base64_encode(“utf-8的标题”)}=?
发送的header设置:Context-type: text-html; charset=utf-8。
但经尝试,发现如上设置对mysinamail.com的邮箱并不起作用,
除非做编码强制转换:
iconv(‘UTF-8′, ‘Big5′, ‘utf-8的标题’)。
为确保不是程序发送的问题,
用Gmail邮箱和QQ邮箱各发一封带中文的邮件给mysinamail.com,
全部都显示乱码。
由此可见,
市面上大部分的邮箱服务器采用的编码都是utf-8编码,
大家用utf-8编码的内容发送给mysinamail.com的时候,
它并不会进行编码转换,
导致中文都乱码。
参考官方给出的feed对话框地址中的参数:
http://www.facebook.com/dialog/feed?
app_id=123050457758183&
link=http://developers.facebook.com/docs/reference/dialogs/&
picture=http://fbrell.com/f8.jpg&
name=Facebook%20Dialogs&
caption=Reference%20Documentation&
description=Dialogs%20provide%20a%20simple,
%20consistent%20interface%20for%20
applications%20to%20interact%20with%20users.&
message=Facebook%20Dialogs%20are%20so%20easy!&
redirect_uri=http://www.example.com/response
经测试发现,
只要确保有picture参数的时候不要带source参数,
就能正常地把图片加到post中去;
否则facebook的api会忽略掉图片。
在Yii框架中如果需要用page cache,
首先得在配置文件中加一个名为“cache”的缓存配置,
比如用文件缓存的配置:
‘cache’=>array(
‘class’=>’CFileCache’,
‘directoryLevel’ => ’2′,
),
它就会在protected/runtime目录下生成缓存文件。
然后在需要整页缓存的页面的controller中,
添加一个filter:
public function filters()
{
return array(
array(
‘COutputCache’,
‘duration’ => 10800,
‘varyByParam’ => array(‘pageNum’)
),
);
}
duration是缓存时间,单位是秒;
varyByParam是指定缓存以某个参数区分页面,
比如带翻页的页面:list.php?pageNum=5,就可以指定参数pageNum作为分别缓存的标志。
在整页缓存的时候,
如果希望某个区块不被缓存,
就可以使用widget来实现,在视图文件中不被缓存的区块调用widget:
<?php $this->renderDynamic(‘widget’, ‘application.extensions.mywidget’, array(‘pageNum’=>$page), true); ?>
然后在目录extensions中添加文件:mywidget.php
然后在里面实现一个自己的widget,示例如下:
<?php
class mywidget extends CWidget
{
public $pageNum;
public function init(){}
public function run()
{
echo “<h1>my first widget</h1>”;
}
}
结合page caching和widget,就可以很方便地把页面大部分代码都缓存起来,但又不失局部不缓存的灵活性。
如图所示:

把facebook的js放到<head></head>里,
ie6有时候就出现上述画面,
把它移到<body>后面,
问题解决。
可恶的IE6.