博文

目前显示的是标签为“XML”的博文

修正了Share站中XML文件特殊字符导致页面无法显示的问题

之前发现某些发布页面在Firefox下会出现页面无法显示,但是放在IE里面却是好的,同时用PHP直接生成的页面也会报告错误. 后来经查发现,在Firefox中出现了一个无法识别的字符,因此导致整个XML文件出错,而且就算是将此字符列入CDATA中也没有用,翻阅资料发现以下为根本原因: XML标准规定的无效字节为: 0x00 - 0x08 0x0b - 0x0c 0x0e - 0x1f 因此只要是内容中出现了这样字节的字符,文内必然报错,而IE不报错的原因自然是因为他不符合标准....错了也能显示OTL 于是就很简单了,增加一个过滤.将这些字符踢掉就好了 function   XmlSafeStr ( $s ) {   return   preg_replace ( " /[ \\ x00- \\ x08 \\ x0b- \\ x0c \\ x0e- \\ x1f]/ " , '' , $s ) ;   }  问题解决.

昨天被捣鼓死了...

一直在捣鼓IE 6.0下的表现问题,因为盒模型的问题结果导致IE 6和IE 7显示效果不同. 结果是:IE 7=FF 2=Opera 9.2的显示效果,IE 6是独立独行... 试过了N种CSSHack甚至IE才能识别的CSS选择器,结果发现...无效... 加上还需要远程求人帮忙调试,真是痛苦无比,到最后才发现这个地方: http://browsers.evolt.org/?ie 基本上涵括了全部版本的IE浏览器的绿色版下载...调试者的福音啊~ 解决了调试困难的问题,开始专注于表现问题.. 试过了无数的方法,理论上其实用!important属性就应该可以搞定的,因为IE 7已经修正了这个属性了,理论上它的表现应该是等同于FF了,但是实际中我发现,他的表现竟然和IE 6一样的...半拉子糟糕.. 什么叫半拉子糟糕,意思就是说可以识别,但是还是没用...比如: div{ color: #FFF !important; color: #000; } 在IE 7和IE6中均识别为#000,而FF和Opera可以顺利识别为#FFF 但是如果这样写: div{ color: #FFF !important; } div{ color: #000; } 那么,在IE 6和IE7中均识别为#FFF... 呵呵,可能专业人士要发话了,"这怎么可能!",但是我发现就是可能的,在处理XHTML的时候确实没有这个问题,但是在处理XSL的时候...就变成了这样的半拉子状况.. 而且类似*+HTML,*DIV,_#,*HTML,这类的可以用在HTML中的Hack统统在XSL中失效了... 绞尽脑汁没结果的状况下,我决定利用已知的BUG,把IE 7和IE 6的表现统一,然后再用important属性来区分IE系列和其他浏览器...结果,把宽度改为100%,把float属性去掉,用margin居中...竟然就OK了...然后对FF使用important让width变为auto...世界就这样和谐了... 简直是无语...白白浪费了我一个晚上的时间...

继续学习充电

图片
这次是关于Tab标准化布局的心得...之前发现怎么样也无法吧表格之间的间隙去掉,无论怎么样做出来的都是双线的表格,后来发现原来是要这样解决: tab的属性: border-collapse:collapse; border-color:#999999; 内部表格的属性: border: 1px solid #999999; 这样就OK了,还害得我捣鼓半天.. 还有就是关于PHP直接echo出XML文件的问题,现开始直接echo怎么都无法输出XML文档,输出格式都是正确的,但是浏览器并不识别为XML,后来终于发现...原来是Header的原因.只要在PHP的输入头文件修改Header就好了,语句是: header('Content-Type: text/xml'); 这样就不需要PHP 4.x的版本打开一些特殊的XML类来生成类了,直接echo就好了,但是解析还是存在问题就是了...不过解析也可以用正则来完成的...具体可以查看IBM站的这帖,写的很基础 http://www.ibm.com/developerworks/cn/opensource/os-xmldomphp/ 现在所需要做的就是实现鼠标移动到对应表格之后的浮动效果了... 结果找到这么一个站: http://www.dyn-web.com/ 实在是太强大了...orz JS原来还可以实现这么多功能...我算是开了眼界了...以后看来需要恶补一下JS的编写了..orz 不过美中不足的是,有加密....不允许使用在非Localhost的站点上..不过JS最多也就是一个16进制的加密而已,随便就搞定了,上网,找了一个JS的16进制转换器,OK了~ 这个是存档,下载这张图片然后把扩展名改为RAR即可解压.. 另外就是在XSL中加载JS文件和直接写入JS的问题.. 加载要使用: <script src="'"></script> 而直接写入JS需要: <script langauge="'"> <![CDATA[ ..................... ]]> </script> 有些地方会画蛇添足的给中间再加上XSL的注释,但是这样的话FF反到不能识别了(FF是矫枉过正..内...