@ZEAL Blog·厉
We stand alone,
TOGETHER.

两个与Firefox相关的问题

Posted by zeal on 2006-06-14 03:07 , 3102 characters, 1 pictures |  + 0 - 0   English
转载请保留本行原始出处声明信息 : http://www.zeali.net/entry/386 MaDe1nZEAL
标签 ( WebDev ):  ,  ,  , 

  今天偶然发现在 Firefox 下点击我 Blog 页面头部的 RSS feed 图标并不像在 IE 下那样可以正常的跳转到 RSS feed XML 页面。难怪之前好像有朋友问我说我的 Blog 上的 RSS 订阅哪里去了?

  原因:因为我用的是 window.navigate("URL") 而不是 location.href='URL' 来做跳转;不幸的是 Firefox 并不支持 navigate 方法。所以以后任何地方要做跳转,忘了 navigate 吧!

  RSS feed 图标可以正常点进去了,又发现 RSS feed XML 的内容显示似乎有点异样。仔细一看原来是正文的内容没有被正确的转化回 html 格式化内容。

  原因:因为我为这个 xml 文件加了 xsl 定义文件,并对于每篇日志的正文部分使用了 disable-output-escaping='yes' 属性来通知浏览器的 xml parser 不要把这部分 html 代码转义。同样的,这个属性为 MSXML 所支持,但 Transformiix 引擎就不支持了。 Firefox 等浏览器使用的 XSLT Processor 恰恰是 Transformiix 。所以,对于 Transformiix 系的浏览器,只能采用“曲线救国”的方法了,利用 javascript 代码找到所有没有被浏览器自动转义回来的内容并进行正确的转义, BunnyQ 在日志中详细描述了解决方案(包括其他几个需要注意的 XSL 兼容性问题)。我最终使用了比较简便的方式:

  在原先的代码
 <div class="list_introduce" id="content">                          

 <xsl:value-of select='description' disable-output-escaping='yes' />
 </div>                                                             

  后面增加一段专门针对Transformiix的处理代码
 <xsl:if test="system-property('xsl:vendor')='Transformiix'">       
 <script language="javascript">                                     
 var el = document.getElementById("content");                       
 el.innerHTML = el.textContent;                                      
 </script>                                                          
 </xsl:if>                                                          

Last Modified on 2007-05-28 12:39
没有评论.
Since 2005.04.27  梦想 就像鸡蛋 要么孵化 要么臭掉RSS Feed (Entries) | Back To Home | @ZEAL | 沪ICP备05024379号