[原创]javascript代码在ie8里报错 document.getElementById(...) 为空或不是对象的解决方法
作者:bea
ie8中对于声明文档类型更加严格如下面的代码。 运行环境: <input type='text' name='os' value='Windows平台' style='width:100px' /> <script type="text/javascript"> function osdo(str){ document.getElementById("os").value=str;
ie8中对于声明文档类型更加严格如下面的代码。
运行环境:
<input type='text' name='os' value='Windows平台' style='width:100px' />
<script type="text/javascript">
function osdo(str){
document.getElementById("os").value=str;
}
</script>
<input name="ostmp" type="radio" value="" onclick="osdo('')" />清空
<input name="ostmp" type="radio" value="Windows平台" onclick="osdo('Windows平台')" />
Windows平台 <input name="ostmp" type="radio" value="" onclick="osdo('S60v2')" />S60v2
<input name="ostmp" type="radio" value="" onclick="osdo('S60v3')" />S60v3
<input name="ostmp" type="radio" value="" onclick="osdo('CHM')" />CHM
<input name="ostmp" type="radio" value="" onclick="osdo('PDF')" />PDF
<input name="ostmp" type="radio" value="" onclick="osdo('PPT')" />PPT
<input name="ostmp" type="radio" value="" onclick="osdo('DOC')" />WORD
<input name="ostmp" type="radio" value="" onclick="osdo('EXCEL')" />EXCEL
<input name="ostmp" type="radio" value="" onclick="osdo('asp')" />asp
<input name="ostmp" type="radio" value="" onclick="osdo('asp+access')" />asp+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sqlserver')" />asp+sqlserver
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sql/access')" />
asp+sql/access <strong>php源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('php')" />php
<input name="ostmp" type="radio" value="" onclick="osdo('php+mysql')" />
php+mysql<input name="ostmp" type="radio" value="" onclick="osdo('jsp')" />jsp <strong>asp.net源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net')" />asp.net
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+access')" />asp.net+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql')" />asp.net+sql
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql/access')" />asp.net+sql/access
[Ctrl+A 全选 注:
如需引入外部Js需刷新才能执行]
可以看到这段代码在ie7与ie8中都是可以运行的,下面的代码我们加入声明文档
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
加了上面的文档类型声明。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
运行环境:
<input type='text' name='os' value='Windows平台' style='width:100px' />
<script type="text/javascript">
function osdo(str){
document.getElementById("os").value=str;
}
</script>
<input name="ostmp" type="radio" value="" onclick="osdo('')" />清空
<input name="ostmp" type="radio" value="Windows平台" onclick="osdo('Windows平台')" />
Windows平台 <input name="ostmp" type="radio" value="" onclick="osdo('S60v2')" />S60v2
<input name="ostmp" type="radio" value="" onclick="osdo('S60v3')" />S60v3
<input name="ostmp" type="radio" value="" onclick="osdo('CHM')" />CHM
<input name="ostmp" type="radio" value="" onclick="osdo('PDF')" />PDF
<input name="ostmp" type="radio" value="" onclick="osdo('PPT')" />PPT
<input name="ostmp" type="radio" value="" onclick="osdo('DOC')" />WORD
<input name="ostmp" type="radio" value="" onclick="osdo('EXCEL')" />EXCEL
<input name="ostmp" type="radio" value="" onclick="osdo('asp')" />asp
<input name="ostmp" type="radio" value="" onclick="osdo('asp+access')" />asp+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sqlserver')" />asp+sqlserver
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sql/access')" />
asp+sql/access <strong>php源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('php')" />php
<input name="ostmp" type="radio" value="" onclick="osdo('php+mysql')" />
php+mysql<input name="ostmp" type="radio" value="" onclick="osdo('jsp')" />jsp <strong>asp.net源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net')" />asp.net
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+access')" />asp.net+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql')" />asp.net+sql
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql/access')" />asp.net+sql/access
[Ctrl+A 全选 注:
如需引入外部Js需刷新才能执行]
发现 提示document.getElementById(...) 为空或不是对象的解决方法
如果页面中既有文档声明,因为用div+css布局的时候,声不声明文档,页面的一些地方都不一样。
可以在head中添加下面的代码
代码如下:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
完整的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
运行环境:
<input type='text' name='os' value='Windows平台' style='width:100px' />
<script type="text/javascript">
function osdo(str){
document.getElementById("os").value=str;
}
</script>
<input name="ostmp" type="radio" value="" onclick="osdo('')" />清空
<input name="ostmp" type="radio" value="Windows平台" onclick="osdo('Windows平台')" />
Windows平台 <input name="ostmp" type="radio" value="" onclick="osdo('S60v2')" />S60v2
<input name="ostmp" type="radio" value="" onclick="osdo('S60v3')" />S60v3
<input name="ostmp" type="radio" value="" onclick="osdo('CHM')" />CHM
<input name="ostmp" type="radio" value="" onclick="osdo('PDF')" />PDF
<input name="ostmp" type="radio" value="" onclick="osdo('PPT')" />PPT
<input name="ostmp" type="radio" value="" onclick="osdo('DOC')" />WORD
<input name="ostmp" type="radio" value="" onclick="osdo('EXCEL')" />EXCEL
<input name="ostmp" type="radio" value="" onclick="osdo('asp')" />asp
<input name="ostmp" type="radio" value="" onclick="osdo('asp+access')" />asp+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sqlserver')" />asp+sqlserver
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sql/access')" />
asp+sql/access <strong>php源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('php')" />php
<input name="ostmp" type="radio" value="" onclick="osdo('php+mysql')" />
php+mysql<input name="ostmp" type="radio" value="" onclick="osdo('jsp')" />jsp <strong>asp.net源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net')" />asp.net
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+access')" />asp.net+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql')" />asp.net+sql
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql/access')" />asp.net+sql/access
[Ctrl+A 全选 注:
如需引入外部Js需刷新才能执行]
有用 | 无用
运行环境:
<input type='text' name='os' value='Windows平台' style='width:100px' />
<script type="text/javascript">
function osdo(str){
document.getElementById("os").value=str;
}
</script>
<input name="ostmp" type="radio" value="" onclick="osdo('')" />清空
<input name="ostmp" type="radio" value="Windows平台" onclick="osdo('Windows平台')" />
Windows平台 <input name="ostmp" type="radio" value="" onclick="osdo('S60v2')" />S60v2
<input name="ostmp" type="radio" value="" onclick="osdo('S60v3')" />S60v3
<input name="ostmp" type="radio" value="" onclick="osdo('CHM')" />CHM
<input name="ostmp" type="radio" value="" onclick="osdo('PDF')" />PDF
<input name="ostmp" type="radio" value="" onclick="osdo('PPT')" />PPT
<input name="ostmp" type="radio" value="" onclick="osdo('DOC')" />WORD
<input name="ostmp" type="radio" value="" onclick="osdo('EXCEL')" />EXCEL
<input name="ostmp" type="radio" value="" onclick="osdo('asp')" />asp
<input name="ostmp" type="radio" value="" onclick="osdo('asp+access')" />asp+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sqlserver')" />asp+sqlserver
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sql/access')" />
asp+sql/access <strong>php源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('php')" />php
<input name="ostmp" type="radio" value="" onclick="osdo('php+mysql')" />
php+mysql<input name="ostmp" type="radio" value="" onclick="osdo('jsp')" />jsp <strong>asp.net源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net')" />asp.net
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+access')" />asp.net+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql')" />asp.net+sql
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql/access')" />asp.net+sql/access
[Ctrl+A 全选 注:
如需引入外部Js需刷新才能执行]
可以看到这段代码在ie7与ie8中都是可以运行的,下面的代码我们加入声明文档
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
加了上面的文档类型声明。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
运行环境:
<input type='text' name='os' value='Windows平台' style='width:100px' />
<script type="text/javascript">
function osdo(str){
document.getElementById("os").value=str;
}
</script>
<input name="ostmp" type="radio" value="" onclick="osdo('')" />清空
<input name="ostmp" type="radio" value="Windows平台" onclick="osdo('Windows平台')" />
Windows平台 <input name="ostmp" type="radio" value="" onclick="osdo('S60v2')" />S60v2
<input name="ostmp" type="radio" value="" onclick="osdo('S60v3')" />S60v3
<input name="ostmp" type="radio" value="" onclick="osdo('CHM')" />CHM
<input name="ostmp" type="radio" value="" onclick="osdo('PDF')" />PDF
<input name="ostmp" type="radio" value="" onclick="osdo('PPT')" />PPT
<input name="ostmp" type="radio" value="" onclick="osdo('DOC')" />WORD
<input name="ostmp" type="radio" value="" onclick="osdo('EXCEL')" />EXCEL
<input name="ostmp" type="radio" value="" onclick="osdo('asp')" />asp
<input name="ostmp" type="radio" value="" onclick="osdo('asp+access')" />asp+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sqlserver')" />asp+sqlserver
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sql/access')" />
asp+sql/access <strong>php源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('php')" />php
<input name="ostmp" type="radio" value="" onclick="osdo('php+mysql')" />
php+mysql<input name="ostmp" type="radio" value="" onclick="osdo('jsp')" />jsp <strong>asp.net源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net')" />asp.net
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+access')" />asp.net+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql')" />asp.net+sql
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql/access')" />asp.net+sql/access
[Ctrl+A 全选 注:
如需引入外部Js需刷新才能执行]
发现 提示document.getElementById(...) 为空或不是对象的解决方法
如果页面中既有文档声明,因为用div+css布局的时候,声不声明文档,页面的一些地方都不一样。
可以在head中添加下面的代码
代码如下:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
完整的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
运行环境:
<input type='text' name='os' value='Windows平台' style='width:100px' />
<script type="text/javascript">
function osdo(str){
document.getElementById("os").value=str;
}
</script>
<input name="ostmp" type="radio" value="" onclick="osdo('')" />清空
<input name="ostmp" type="radio" value="Windows平台" onclick="osdo('Windows平台')" />
Windows平台 <input name="ostmp" type="radio" value="" onclick="osdo('S60v2')" />S60v2
<input name="ostmp" type="radio" value="" onclick="osdo('S60v3')" />S60v3
<input name="ostmp" type="radio" value="" onclick="osdo('CHM')" />CHM
<input name="ostmp" type="radio" value="" onclick="osdo('PDF')" />PDF
<input name="ostmp" type="radio" value="" onclick="osdo('PPT')" />PPT
<input name="ostmp" type="radio" value="" onclick="osdo('DOC')" />WORD
<input name="ostmp" type="radio" value="" onclick="osdo('EXCEL')" />EXCEL
<input name="ostmp" type="radio" value="" onclick="osdo('asp')" />asp
<input name="ostmp" type="radio" value="" onclick="osdo('asp+access')" />asp+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sqlserver')" />asp+sqlserver
<input name="ostmp" type="radio" value="" onclick="osdo('asp+sql/access')" />
asp+sql/access <strong>php源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('php')" />php
<input name="ostmp" type="radio" value="" onclick="osdo('php+mysql')" />
php+mysql<input name="ostmp" type="radio" value="" onclick="osdo('jsp')" />jsp <strong>asp.net源码</strong>
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net')" />asp.net
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+access')" />asp.net+access
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql')" />asp.net+sql
<input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql/access')" />asp.net+sql/access
[Ctrl+A 全选 注:
如需引入外部Js需刷新才能执行]
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- Jquery选择器 $实现原理
- js 表格隔行颜色
- 让FireFox支持innerText的实现代码
- 兼容IE与Firefox的js 复制代码
- JavaScript 直接操作本地文件的实现代码
- js 变量类型转换常用函数与代码[比较全]
- Jquery 快速构建可拖曳的购物车DragDrop
- JavaScript 学习笔记 Black.Caffeine 09.11.28
- Ruffy javascript 学习笔记
- jquery 分页控件实现代码
- JS 动态获取节点代码innerHTML分析 [IE,FF]
- Aptana调试javascript图解教程
- jQuery chili图片远处放大插件
- document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
- javascript 设置某DIV区域内的checkbox复选框
- Javascript 构造函数,公有,私有特权和静态成员定义方法
- javascript 新闻列表排序简单封装
- JavaScript Alert通用美化类
- js鼠标移动在title中显示图片的效果代码