β

xslt未加doctype引起的jquery方法在firefox不可用的解决方法

前端码工 68 阅读

上午帅哥韩遇到一个问题,如他所描述:

一个xslt渲染的页面引用jquery1.4.2会导致$(document).ready这个方法在firefox下不执行而ie下却完全没有问题,但是换成jquery1.3.2就不会有这样子的问题。

过去看了一下,这个方法里面加了简单的alert来测试。初步怀疑:

  1. jquery的js文件编码问题(如utf8 dom编码格式或者utf8无dom编码格式云云)
  2. xml+xslt在浏览器端进行数据与样式的整合,会不会是script在页面中的顺序导致的问题呢?

第一种情况,主要是之前有遇到过类似情况,经过notepad编码转换,没有出现这种情况。第二种情况也迅速的排除。 幸好这个问题出现在firefox下,迅速在firebug中查看了一下变量jQuery及$,前者未定义,后者却是有定义的。于是,把其它js文件屏蔽掉,继续查看后发现:$是firebug的定义。再次陷入囧境。 帅哥陈过来说xslt会把特定字符转义了,于是把代码块移动js文件中,情况仍然没有解决。又想了,可能是jquery1.4有bug吧,搜了一下,“貌似”是有bug的。于是,问了一下,貌似不一定非得要用jquery1.4的。果断让他用了jquery1.3。嗯,到此为止我以为问题已经解决了,其实不然。 要用jquery1.3,必须解决1.3下ajax请求不成功的问题。于是,最初的问题被抛了出来,是这样子的:

在jquery1.3.2及xml+xslt下,其中包装过的函数ajax请求不成功,但是在一般非xml+xslt页面却是可以请求到数据的。

至此,真正的问题才浮出水面。

xml+xslt跟xhtml页面有什么区别呢,见代码:

[xslt]











[/xslt]

声明: 本文 ” xslt未加doctype引起的jquery方法在firefox不可用的解决方法 ” 采用 BY-NC-SA 协议进行授权.

转载请注明本文链接地址: https://blog.seacoffee.net/13.html

作者:前端码工
仁义礼智信,温良恭俭让。

发表评论