哈,IE7!--dudu的CNBlogs DotText 1.0 Beta 2中FreeTextBox对IE7的不兼容性

前段时间刚受朋友之托把.Text0.95的程序升级到dudu的CNBlogs DotText 1.0 Beta 2, 主要是看上了他的验证码:)看起来还不错,结果过了不久就发现两三个问题 :
(1)发表Post和评论的FreeTextBox不能用呃
(2)后台管理的评论中看不到以前的评论,但能看到升级系统后的评论.
(3)某Post的页面能看到以前的评论,但是blog拥有者不能删除该评论.

在仔细检查安装步骤无误后,我只得老老实实看了代码,还反编译了FreeTextBox控件dll,原来第一个问题的原因是控件的代码只判断了IE5, IE6了, 不认识IE7:) 因为我用的IE7Beta3(马上就装已发布的IE7了)就看不到FreeTextBox了,改了两处然后编译就好了,步骤如下:
(1)DottextWeb\FreeTextBox\FreeTextBox-MainScript.js 中把原来的isIE=(ie5||ie55||ie6)?_t:_f;改为
]ie7=(_nv.indexOf("msie 7.0")!=-1)?_t:_f;
isIE=(ie5||ie55||ie6||ie7)?_t:_f;
(2)用Reflector反编译DottextWeb/bin/FreeTextBox.dll,保存代码到FreeTextBox_Source,并略作修改使之编译通过.
(3)FreeTextBox_Source\FreeTextBoxControls.Suppor\BrowserInfo.cs中把原来的
info1.isIE5plus = (text1.IndexOf("MSIE 5") > 0) || (text1.IndexOf("MSIE 6") > 0));改为
info1.isIE5plus = (text1.IndexOf("MSIE 5") > 0) || (text1.IndexOf("MSIE 6") > 0) || (text1.IndexOf("MSIE 7") > 0);
(4)修改DottextWeb和Admin两个工程的FreeTextBox引用到新的FreeTextBox.dll.(或将FreeTextBox_Source工程加入到当前解决方案,将两个引用指向该工程),编译解决方案

上面问题(2)(3)是因为dudu的版本用posttype=8表示comment,而原来数据库中是用posttype=3表示comment,需要对原来的数据库之星update blog_content set posttype=8 where posttype=3

你可能感兴趣的:(Blog)