|
以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- IE和MF中XSL解析器的不同及其解决办法(争做版主大放血) (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=50505) |
|
-- 作者:hexun831012 -- 发布时间:7/25/2007 3:52:00 PM -- IE和MF中XSL解析器的不同及其解决办法(争做版主大放血) 1、输出 一般的XSL在Mozilla Firefox(MF)中看不到效果,那是因为MF默认的output method是xml,所以只能看到文本,为了保证和IE的效果一样,需要在文档中加上<xsl:output method="html" indent="no"/>,IE在method为html是默认indent为yes。 2、空白 在IE中XSL忽略标签与标签以及标签与文本(不包括文本与标签)之间的空白(空格,回车,缩进等),而MF中不会忽略,这就是为什么很多转换在MF中比IE中多出空格,如何解决这个问题其实要看你对这个问题的态度,如果觉得不重要大可以不解决,但是有些特殊的转换确实需要重视这个问题,我的解决办法是在文档中加入以下代码: <xsl:template match="text()"> <xsl:value-of select="normalize-space(.)"> </xsl:if> 3、disable-output-escaping属性 MF不支持disable-output-escaping属性,这很头疼,我的解决办法是在文档中加入以下代码: <xsl:if test="system-property('xsl:vendor') = 'Transformiix'"> <script type="text/javascript"> var paragraphs = document.getElementsByTagName("p"); for(var i = 0; i < paragraphs.length; i ++) { paragraphs[i].innerHTML = paragraphs[i].textContent; } </script> </xsl:if> 当然javascript的写法自定。 4、其他 请不要使用msxml:script,不用多说了。 system-property的返回值不同,MF也没有msxsl:version。 如果还有不间断更新。
|
|
-- 作者:hexun831012 -- 发布时间:7/25/2007 4:00:00 PM -- 申请精华,争做版主 |
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
8,468.750ms |