html加载与脚本运行中,由于html未完全加载而导致脚本找不到dom元素无法执行事件
问题:
如题,就是说alert后出现一个对话框,我没有点关闭,其他js文件或html会被加载吗,我遇到一个问题就是在页面加载时调用一个div的click事件,却没有被执行,但是在调用事件前面加上alert('xx');运行后手动关闭提示框click事件就调用成功,为什么,也写了个sleep函数,但不论sleep多久click事件也不会被执行,那我要怎样才能自动调用这个click。
解决方法:
将代码包含在onload中,进行(window.onload())加载。
原理:
首先网页接你所编写的代码顺序依次加载,当然有时候也会由于网络原因导致加载成功的顺序有所不同,但基本不会相差太多。
它先加载了你的vote[0],然后这个vote[0]所指向的DOM(也就是你说的DIV)却没有被加载并解析,浏览器这时候还不认识这个vote[0]是个什么东西。
所以,这个时候浏览器会报错这行代码,如果你使用浏览器的F12功能键打开调试器,应该可以看到报错信息。
如果你希望让这段代码加载时直接运行,要考虑执行顺序的问题,要么onload再执行,要么把它放到HTML后面去。
而为什么alert之后就好用了呢?因为alert执行的时候,在等待用户确认的这个过程中,程序是被阻断的,不会向下执行,但是页面的加载过程却不中止,这就相当于页面加载并解析的时间,被alert给留下来了,如果用户的手快,而网络速度很慢的话,同样也会报错,并不执行。
js在html中的加载执行顺序:http://www.cnblogs.com/lindaWei/archive/2012/04/05/2433454.html http://www.jb51.net/article/36755.htm
onload和jQuery的$(function(){})的执行: http://lgscofield.iteye.com/blog/1884352
JS和C#方法相互调用:http://www.cnblogs.com/lindaWei/archive/2012/04/05/2433385.html
html加载与脚本运行中,由于html未完全加载而导致脚本找不到dom元素无法执行事件的更多相关文章
- Linux版Matlab R2015b的bug——脚本运行的陷阱(未解决)
0 系统+软件版本 系统:CentOS 6.7 x64, 内核 2.6.32-573.el6.x86_64软件:Matlab R2015b(包括威锋网和东北大学ipv6下载的资源,都测试过) 1 脚本 ...
- 浏览器中开发人员工具快速找到dom元素绑定那些JS事件
在web开发过程中难免会遇到让程序员去修改一些js代码东西,例如js的ajax和php等语言的交互等,在这其中你不得不了解点js的事件触发,且随着js的盛行各种插件的事件让程序员眼花缭乱,所以借助一个 ...
- 此编译单元不包含在frame元数据中指定的factoryClass,无法加载配置的运行时共享库
警告:此编译单元不包含在frame元数据中指定的factoryClass,无法加载配置的运行时共享库.要在没有运行时共享库的情况下进行编译,请将 -static-link-runtime-shared ...
- 【ASP.NET Core】EF Core - “影子属性” 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1
[ASP.NET Core]EF Core - “影子属性” 有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. ...
- linux中环境变量和系统加载环境变量的顺序
一.系统环境变量: /etc/profile :这个文件预设了几个重要的变量,例如PATH, USER, LOGNAME, MAIL, INPUTRC, HOSTNAME, HISTSIZE, uma ...
- java中带继承类的加载顺序详解及实战
一.背景: 在面试中,在java基础方面,类的加载顺序经常被问及,很多时候我们是搞不清楚到底类的加载顺序是怎么样的,那么今天我们就来看看带有继承的类的加载顺序到底是怎么一回事?在此记下也方便以后复习巩 ...
- Java ClassLoader基础及加载不同依赖 Jar 中的公共类
转载自:最新内容及最清晰格式请见 http://www.trinea.cn/android/java-loader-common-class/ 本文主要介绍 ClassLoader 的基础知识,Cla ...
- Java 类中各成分加载顺序 和 内存中的存放位置
参加一个笔试,有一个关于类的静态代码块.构造代码块.构造函数的执行顺序的问题.不太清楚,网上百度了一下.在这里记录一下. 一.什么时候会加载类?使用到类中的内容时加载:有三种情况1.创建对象:new ...
- 使用FluentScheduler和IIS预加载在asp.net中实现定时任务管理
FluentScheduler介绍 github地址:https://github.com/fluentscheduler/FluentScheduler FluentScheduler是一个简单的任 ...
随机推荐
- MVVMLight Toolkit在Windows Phone中的使用扩展之一:在ViewModel中实现导航,并传递参数
MVVMLight是MVVM开发模式在Windows Phone平台下的一个开发框架,关于MVVMLight的基础使用,已经有人写的很好了,可以参照:MVVM.MVVMLight.MVVMLight ...
- CXF 的IP拦截
非常久没有写技术文档了,今天 记录下Webserver的Ip限制吧 需求是:webserver接口能在内网訪问,可是測试平台的webserver要能够在外网訪问,这样就有了一点差别, 这个实现的比較简 ...
- 从Excel转Access的一个方法说开去(DataRow的state状态)
因为客户对access不太熟悉,更喜欢玩EXCEL.但是系统要求导入ACCESS.所以我们得做个把EXCEL转换成Access的小工具.(别问我为啥不让系统直接导入excel....我不知道!),然后 ...
- js实现页面时钟
<body onload="setInterval(nowtime,1000)"> <form id="main" method=&qu ...
- js 取消listbox选中的项
<input type="button" id="cel" value="取消选择" onclick="clearListB ...
- SQL学习之数据列去空格函数
1.LTRIM()---去掉列值左边的空格 如下代码: select * from dbo.course where tno='t003' and cno='c0013'
- SQL标识列的查询
1.判段一个表是否具有标识列 www.2cto.com 可以使用 OBJECTPROPERTY 函数确定一个表是否具有 IDENTITY(标识)列,用法: Select OBJECT ...
- spring拦截器的定义
(一).拦截器的定义 1.为什么需要拦截器:在做身份认证或者是进行日志的记录时,我们需要通过拦截器达到我们的目的 2.什么事拦截器:在AOP(Aspect-Oriented Programming)中 ...
- JS中小数的差,比较大小
var a = 0.3-0.2; -0.3; alert(a + "&" + b); if (a == b) { alert("true"); } el ...
- Java的函数与函数重载
关于Java的函数与函数重载 关于Java的函数与函数重载 1. 函数 假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹.发射炮弹的动作都需要使用一段百行左右的程序代码,在每次发射炮弹的地方都要 ...