Saturday, July 30

RSS显示的技术问题

在IE中,如果使用 disable-output-escaping="yes" 来规范大块html文字的输出,能够得到很好的效果,
但是相同的程序在Firefox下面就得到不同的效果:

所有的HTML格式都没有起作用,而是简单地显示出来了,界面很乱。

我不是第一个发现Firefox不能实现这个功能的人。Google一下,Gea-Suan Lin在3月份就开始寻找答案。Denis de Bernardy在5月份给出一个2001-11-18的Mozilla通信,说明Mozilla不认为这是一个bug,因为它已经正确地遵循了w3c的要求,不打算改正(反而Microsoft IE的做法不规范?)。

我忽然记起Feedburner以前的feed(在firefox中)也是乱的,访问一下,发现现在居然好了!所以我深挖进去,发现它调用了Sean M. Burke的一个javascript程序,在程序中把需要格式化的文字重新排版一遍,其实只有一句话:to_decode[i].innerHTML = to_decode[i].textContent。我赶紧把它应用到我的RSS (RSS 2.0格式)上,果然实现了格式化排版的效果:


上一个帖子已经说明了使用方法:
如果你拥有自己的blog,发布RSS 2.0,只需要把这个xsl文档拷到你的RSS所在目录下面,在自己的RSS头(<?xml version="1.0" encoding="GB2312"?>下一行)加上
<?xml-stylesheet type="text/xsl" href="rss.xsl" ?>就可以了。

这个程序是开源的,遵循共同创作原则:你可以自由分发、修改这个程序,但是请在源程序中保留我的版权信息。

Labels: