Javascript 之间的差异<;html:hidden>;及<;输入类型=";“隐藏的”&燃气轮机;关于IE11
我遇到了一个与浏览器相关的奇怪问题(IE9和更低版本与IE11),但我想知道为什么会出现这种奇怪的行为 问题描述:我使用spring框架并使用它的相关标记库在JSP上检索数据。有一个名为index的变量,我从表单中检索它,它过去是通过以下方式检索的Javascript 之间的差异<;html:hidden>;及<;输入类型=";“隐藏的”&燃气轮机;关于IE11,javascript,spring,internet-explorer-11,jsp-tags,Javascript,Spring,Internet Explorer 11,Jsp Tags,我遇到了一个与浏览器相关的奇怪问题(IE9和更低版本与IE11),但我想知道为什么会出现这种奇怪的行为 问题描述:我使用spring框架并使用它的相关标记库在JSP上检索数据。有一个名为index的变量,我从表单中检索它,它过去是通过以下方式检索的 <html:hidden property="index" name="pdmAcctSuppressForm" /> 在IE9之前,javascript似乎可以按预期工作,并在所有IE浏览器中检索实际值,但在IE11上似乎无法工作d
<html:hidden property="index" name="pdmAcctSuppressForm" />
在IE9之前,javascript似乎可以按预期工作,并在所有IE浏览器中检索实际值,但在IE11上似乎无法工作document.getElementById(“index”)
在IE11上返回无效
解决方案:通过将上述taglib实现从
到
我想知道IE11上发生了什么变化,导致实现无法使用,以及我引用的解决方案是否正确有效
在IE9之前,javascript似乎可以按预期工作,并在所有IE浏览器中检索实际值,但在IE11上似乎无法工作。
。。。
我想知道IE11上发生了什么变化,导致实现无法使用,以及我引用的解决方案是否正确有效 你也应该有IE8的问题。通过IE7,IE有一个bug:它发现使用
getElementById
的元素没有您要求的id
,但是有一个匹配的名称。也就是说,在IE8及更早版本中:
<input name="foo">
…可通过document.getElementById(“foo”)
找到
这是一个bug(虽然有一段时间微软称它为一个功能,并记录了它),它已经被修复了
更多(在我的博客上):
@Crowder:当存在重复项(即共享相同名称和/或id)时,您在博客上提到的问题似乎是相关的。但在我的例子中,JSP中只有一个索引字段。还是同一个问题???@sandy:是否有重复的问题并不重要。问题是旧标记创建的元素具有名称
,而不是id
。老IE找到了它,因为找到具有匹配的名称
而不是匹配的id
的元素已经够傻的了。较新的IE修复了该错误,并且只有在元素具有正确的id
时才会找到该元素。在IE8中,我们从IE7迁移到IE9,因此我们没有遇到这个问题,但不知何故,它在IE9中也很好地工作。@sandy:可能是兼容设置。@sandy:您不必使用getElementById
。IE8和更高版本(以及所有现代浏览器)都有querySelector
。因此,您可以执行var index=document.querySelector(“输入[name=index]”)代码>
<input name="foo">