今天写个网页,想在页面加载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读取数据为空分析相关推荐

  1. javascript中document.getelementbyid缺少对象的问题原因

    下面这段代码浏览器端运行时会报错:缺少对象 原因是:在还未加载img对象前就试图通过它的id得到img对象. 从这个错误就可以看出Javascript和html的一些特性. 下面是报错的代码段 < ...

  2. Android中,Sqlite数据库读取数据为空的问题

    公司使用的触摸屏出现了一个奇怪的问题,在app中读取数据,只是简单的select * from table 也查询不到数据. [问题描述] 后来发现是有两个module单例分别连接数据库,一个modu ...

  3. easyExcel 读取数据为空的一次报错记录

    文章目录 公司不让使用lombok,我感觉没啥,就使用了,结果导致easyExcel解析的数据总是为{}. 在网上找到了答案: 文章转自

  4. 【OpenCV】imread读取数据为空

    直接加配置好的props文件到新的工程时,会出现imread读出来的Mat为空的情形,搜了一下,发现是opencv的配置问题!!! 是这样的,之前配置时为了省事儿,无论是Debug还是Release中 ...

  5. document.getElementById 学习总结

    document.getElementById获取控件对象为空的解决方法 1.下面是一个简单的例子,页面加载时显示一段信息 代码如下: <%@ page language="java& ...

  6. JavaScript 技术篇-chrome浏览器读取剪切板命令document.execCommand(‘paste‘)返回false原因及解决方法

    新版本 chrome 执行 document.execCommand('paste') 返回 false 因为读取剪切板涉及用户隐私安全,必须的用户允许的情况下可以进行访问,但是复制和剪切功能可以使用 ...

  7. document.getelementbyid css,使用document.getElementById()从css获取值。style.height javascript...

    我试图通过 var high = document.getElementById("hintdiv").style.height; alert(high); 摆脱一个div框高度值 ...

  8. document.getElementById()基本使用方法————JavaScript

    定义:getElementById() 方法可返回对拥有指定 ID 的第一个对象的引用 <!DOCTYPE html> <html lang="en">&l ...

  9. 如何使用JavaScript实现纯前端读取和导出excel文件(转)

    转自小茗同学博客:https://www.cnblogs.com/liuxianan/p/js-excel.html js-xlsx 介绍 由SheetJS出品的js-xlsx是一款非常方便的只需要纯 ...

最新文章

  1. 【转】FPGA+CPU:并行处理大行其道
  2. 05_pandas读写文件,读写数据到CSV,HDF5,Excel中
  3. 卷积神经网络(Convolutional Neural Networks,CNNS/ConvNets)
  4. mysql基础表和修理表_MySQL基础知识——创建数据库和表
  5. VMware Linux 共享文件夹 虚拟机无共享文件解决方法
  6. tensorflow 计算梯度: tf.gradient() 与 tf.GradientTape()
  7. supervessel-免费云镜像︱GPU加速的Caffe深度学习开发环境
  8. php 降低视频分辨率,将低分辨率视频变成1920*1080高分辨视频,可自由调节分辨率宽高...
  9. java httpclient 关闭_httpclient 4种关闭连接
  10. 在Linux下进入目录,目录下创建、修改、删除文件所需权限
  11. php 修改文件的权限_授予PHP写入文件和文件夹的权限
  12. 前端-深克隆与浅克隆
  13. 三方协议服务器不填,三方协议档案转寄地址可以不填吗
  14. oracle 排序算法,ORACLE的ORDERBY非稳定的排序
  15. 记录下我磕磕碰碰的三个月找工作经历,不吃透都对不起自己
  16. 使用STM32C103C8T6的注意点
  17. PDF文档工具箱Stirling-PDF
  18. 【TS TSP】基于matlab禁忌搜索求解旅行商问题【含Matlab源码 447期】
  19. Vue中css自定义实现div层,并在右上角有个叉叉,模仿dialog
  20. java强制转换用法_Java入门课|这才是Java强制类型转换的正确使用方法,你真的会用这些吗...

热门文章

  1. 避免重复造轮子,我们去哪找FPGA IP或是HDL功能模块?
  2. 北斗导航 | 读取ground truth data(python源代码)
  3. 神经网络 | 神经网络概述及发展史
  4. 计算机视觉与深度学习 | ORB特征提取:基于OpenCV+Python(附代码)
  5. RocketMQ实战与原理---安装、部署及简单应用
  6. PyTorch随笔-2
  7. javascript精要(1)-script元素
  8. wxWidgets随笔(13)-wxBoxSizer类Basic Box Sizer(2)
  9. 【Python】实战多word的内容合并筛选及输出
  10. 【面试招聘】双非渣硕的秋招路