javascript:使用document.getElementById读取数据为空分析
今天写个网页,想在页面加载onLoad时,动态显示由后台其他程序传来的数据时,用document.getElementById获取控件对象总是为空。但是检查了这个id确实是存在的。在网上查阅一番后才知道了其中的原因。
1.下面是一个简单的例子,页面加载时显示一段信息
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><script language="javascript">alert("hello!!!");</script></head><body onLoad="showMessage()"><h1>在页面加载之前,会输出一些信息</h1></body> </html>
执行后,确实是“在页面加载前,输出了信息”。
2.下面的例子会出现document.getElementById为空的情况。
我的计划是:在页面加载时,在<body></body>的文本框中显示由后台处理来的数据,比如这里的字符串“hello, my friend!”。但是这里通过通过document.getElementById读取的是对象为空。
因为onLoad方法在页面<body></body>加载之前执行,此时id="mes"对应文本框的文本框,还没有加载进去。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><script language="javascript">var t=document.getElementById("mes");t.value="hello, my friend!"</script></head><body onLoad="showMessage()">the message is:<input type="text" id="mes"></body> </html>
3.解决办法
在加载Html网页时,会加载<html></html>中的所以数据。先加载<head>,再加载<body>。
所以我们可在</body>之后,在</html>之前写入javascript就好了。程序顺序执行,执行到相应的javascript调用就可以执行。不是用onLoad方法。
代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><body> the message is:<input type="text" id="mes"></body><!-- 继续执行javascript代码 --><script language="javascript">function showMessage(){var t=document.getElementById("mes");t.value="hello, my friend!"}showMessage(); //调用方法,更新文本框 </script> </html>
javascript:使用document.getElementById读取数据为空分析相关推荐
- javascript中document.getelementbyid缺少对象的问题原因
下面这段代码浏览器端运行时会报错:缺少对象 原因是:在还未加载img对象前就试图通过它的id得到img对象. 从这个错误就可以看出Javascript和html的一些特性. 下面是报错的代码段 < ...
- Android中,Sqlite数据库读取数据为空的问题
公司使用的触摸屏出现了一个奇怪的问题,在app中读取数据,只是简单的select * from table 也查询不到数据. [问题描述] 后来发现是有两个module单例分别连接数据库,一个modu ...
- easyExcel 读取数据为空的一次报错记录
文章目录 公司不让使用lombok,我感觉没啥,就使用了,结果导致easyExcel解析的数据总是为{}. 在网上找到了答案: 文章转自
- 【OpenCV】imread读取数据为空
直接加配置好的props文件到新的工程时,会出现imread读出来的Mat为空的情形,搜了一下,发现是opencv的配置问题!!! 是这样的,之前配置时为了省事儿,无论是Debug还是Release中 ...
- document.getElementById 学习总结
document.getElementById获取控件对象为空的解决方法 1.下面是一个简单的例子,页面加载时显示一段信息 代码如下: <%@ page language="java& ...
- JavaScript 技术篇-chrome浏览器读取剪切板命令document.execCommand(‘paste‘)返回false原因及解决方法
新版本 chrome 执行 document.execCommand('paste') 返回 false 因为读取剪切板涉及用户隐私安全,必须的用户允许的情况下可以进行访问,但是复制和剪切功能可以使用 ...
- document.getelementbyid css,使用document.getElementById()从css获取值。style.height javascript...
我试图通过 var high = document.getElementById("hintdiv").style.height; alert(high); 摆脱一个div框高度值 ...
- document.getElementById()基本使用方法————JavaScript
定义:getElementById() 方法可返回对拥有指定 ID 的第一个对象的引用 <!DOCTYPE html> <html lang="en">&l ...
- 如何使用JavaScript实现纯前端读取和导出excel文件(转)
转自小茗同学博客:https://www.cnblogs.com/liuxianan/p/js-excel.html js-xlsx 介绍 由SheetJS出品的js-xlsx是一款非常方便的只需要纯 ...
最新文章
- 【转】FPGA+CPU:并行处理大行其道
- 05_pandas读写文件,读写数据到CSV,HDF5,Excel中
- 卷积神经网络(Convolutional Neural Networks,CNNS/ConvNets)
- mysql基础表和修理表_MySQL基础知识——创建数据库和表
- VMware Linux 共享文件夹 虚拟机无共享文件解决方法
- tensorflow 计算梯度: tf.gradient() 与 tf.GradientTape()
- supervessel-免费云镜像︱GPU加速的Caffe深度学习开发环境
- php 降低视频分辨率,将低分辨率视频变成1920*1080高分辨视频,可自由调节分辨率宽高...
- java httpclient 关闭_httpclient 4种关闭连接
- 在Linux下进入目录,目录下创建、修改、删除文件所需权限
- php 修改文件的权限_授予PHP写入文件和文件夹的权限
- 前端-深克隆与浅克隆
- 三方协议服务器不填,三方协议档案转寄地址可以不填吗
- oracle 排序算法,ORACLE的ORDERBY非稳定的排序
- 记录下我磕磕碰碰的三个月找工作经历,不吃透都对不起自己
- 使用STM32C103C8T6的注意点
- PDF文档工具箱Stirling-PDF
- 【TS TSP】基于matlab禁忌搜索求解旅行商问题【含Matlab源码 447期】
- Vue中css自定义实现div层,并在右上角有个叉叉,模仿dialog
- java强制转换用法_Java入门课|这才是Java强制类型转换的正确使用方法,你真的会用这些吗...
热门文章
- 避免重复造轮子,我们去哪找FPGA IP或是HDL功能模块?
- 北斗导航 | 读取ground truth data(python源代码)
- 神经网络 | 神经网络概述及发展史
- 计算机视觉与深度学习 | ORB特征提取:基于OpenCV+Python(附代码)
- RocketMQ实战与原理---安装、部署及简单应用
- PyTorch随笔-2
- javascript精要(1)-script元素
- wxWidgets随笔(13)-wxBoxSizer类Basic Box Sizer(2)
- 【Python】实战多word的内容合并筛选及输出
- 【面试招聘】双非渣硕的秋招路