【发布时间】:2012-08-08 13:48:06
【问题描述】:
我有一个仅在 IE8 中表现出来的 HTML 操作问题。
我最近编写了一些 javascript 来分析标签并根据它的内容做了一些事情。
这段代码假定标签是小写的。
if(value.indexOf('<input') == -1)
这在 IE8 下失败,我必须修复它。
现在我可以进行如下第二次检查:
if(value.indexOf('<input') == -1 && value.indexOf('<INPUT') == -1)
这会抓住这两种可能性,但看起来非常混乱。
有没有更好的方法来处理这种情况? JQuery 能解决这个问题吗?
"value" 是从 JQGrid 传递给我的 javascript 函数的 html 字符串。使用 IE8 字符串为大写,使用 IE9、FF、Chrome 为小写。
【问题讨论】:
-
我很好奇,在什么情况下 IE 会改变你的 HTML 的大小写,或者只有当你告诉 IE 自己生成代码时才会这样?
-
@Chris:嗯,一方面我们不知道
value是如何被检索到的,但是当你得到一个DOM 节点时,你只是在处理文档的内部表示,这仅与您为生成该文档而编写的代码松散相关。大多数浏览器会将innerHTML报告为小写,而不管您用于创建文档的大小写如何,尽管如果您在 quirks 模式下运行 IE9,它会产生全部大写。 -
@DavidHedlund:是的,我明白你对 DOM 的意思。我认为,如果 value 是在测试特定元素是否存在之前被转换为字符串的 dom 的一部分,那么在我们正在寻找字符串的部分之前就会出现问题。 ;-)
-
我意识到我的第一句话很有误导性。 JQGrid 正在返回值。在 IE9、FF、Chrome 等中,它返回小写,在 IE8 中返回大写。我做了一个谷歌搜索,看到一些人提到,但我不确定确切的原因。
-
我现在更新了这个问题,让它更清楚......希望
标签: javascript jquery internet-explorer-8 jqgrid-asp.net