最近发现项目中遇到这样一个情况,以前系统在IE6下是好的,但是在IE8下有些输入框就出现数据拿不到等情况,后来发现在IE8下有很多表达式都是不能用的,包括现在说到的documen.all.item()拿到的对象总是为空,经过仔细收集资料发现原来这个doctype有关
请看下面一个例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>document.all.item test</title>
</head>
<body>
<input name="12345" type="text">
<input type="button" value="doSomething" onclick="_click()"/>
</body>
<script type="text/javascript">
function _click(){
document.all.item("12345").value = "abcdefg";
}
</script>
</html>
当你点击按钮,文本框会赋值吗?
如果你用IE6,我可以肯定的告诉你,会...
但是你如果用IE8打开,肯定是不会的...
不信可以试试。
有两个解决办法,一个是在doctype前加一句<!-- --->
另一个就是将doctype注释起来或去掉。这两个方法取得的效果是一样的,为什么呢?
在doctype前加注释语句块,可以将doctype的功能取缔,因为doctype必须位于html的第一行,放在第二行就失去了意义,第二个方法就不用说了。
如果你也有同样的问题,你可以检查一下你的jsp,很可能你在jsp中doctype不是写在第一行,但是你查看源文件,很可能doctype就在第一行出现,所以咱们以后编写html就要注意了。
为什么加了doctype就不支持了呢,首先document.all.item本身就不是w3c推出的标准,只是一个微软搞得一套东东,现在微软想在IE8中不维护这个了,所以就搞得现在不支持了。
所以咱们以后写程序一定要用w3c的标准,用document.getElementsByName()[0]代替它
。相信这个不会不支持的。
分享到:
相关推荐
从IE4开始IE的object model才增加了document.all[],来看看document.all[]的Description: Array of all HTML tags in the document.Collection of all elements contained by the object. 也就是说document.all[]是...
JS中关于document.all的详解
JS:document.all的用法
火狐、谷歌、IE关于document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题
document.all可以判断浏览器是否是IE if(document.all){ alert(“is IE!”); } 三. 也可以通过给某个元素设置id属性(id=aaaa),然后用document.all.aaaa调用该元素 四. 案例: 代码1: 代码如下: <input...
jsDocument
但DOM也有所不同,因为浏览器厂商之间的竞争,各浏览器厂商都开发了自己的私有DOM,只能在自己的浏览器上正确运行,document.all[]就是只能运行在 IE是的微软的私有DOM。为了正确理解DOM,给出IE4的DOM 2、理解...
关于document.cookie的使用
document.getElementById 是公共标准,被目前的所有主流浏览器支持,document.all只有IE支持,document.layers是Netscape 4.x专有的属性
document.execCommand()的用法
MySQL数据库备份/恢复工具V1.0.0 我找了一些代码改进的.单个文件实现服务器备份,下载到本机,分卷备份等.
DOM对象中document.all显示全部html标记集合.为网页版,打开后,右击,显示源码ok
主要介绍了关于IE11修改User-agent不再支持document.all等,需要的朋友可以参考下
解决使用js进行下拉列表关联时使用documnet.frames方法在非ie中无响应的方法
– if(document.all) alert(“this is a IE”); else alert(“this is a Mozilla”); //–> [removed] </body> </html> 在IE浏览器会输出 “this is a IE”; 而在firefox浏览器中会...
程序修改生成的document.xml 和 item1.xml
完整获取webBrowser1的Cookie HttpOnly的Cookie
win7中vfp软件安装后出现 0: 找不到MSXML2.DOMDOCUMENT.4.0类定义,此中是Dll文件下载,直接放在c:\windows\system目录下即可!msxml4.cab