Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 之间的差异<;html:hidden>;及<;输入类型=";“隐藏的”&燃气轮机;关于IE11_Javascript_Spring_Internet Explorer 11_Jsp Tags - Fatal编程技术网

Javascript 之间的差异<;html:hidden>;及<;输入类型=";“隐藏的”&燃气轮机;关于IE11

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

我遇到了一个与浏览器相关的奇怪问题(IE9和更低版本与IE11),但我想知道为什么会出现这种奇怪的行为

问题描述:我使用spring框架并使用它的相关标记库在JSP上检索数据。有一个名为index的变量,我从表单中检索它,它过去是通过以下方式检索的

<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">