JavaScript是一种脚本语言,浏览器下载到哪就会执行到哪,这种特性会为编程带来方便,但也容易让程序过于零散,为此我们从功能上将程序进行职能划分,我们把划分出来的应用部分组织起来,给他们一个统一的‘入口’,方便修改、添加功能的时候直接找到他。
<div> xxxxx </div> <script type='text/JavaScript'> xxxxx </script> <script type='text/JavaScript'> function init(){ //功能A (function (){})() //功能B (function (){})() //功能C (function (){})() } </script> <div> xxxxx </div>
接下来就可以调用入口函数,完成页面的初始化。如果程序控制某个DOM节点,但是这个节点还没有被载入,程序就会报错,如下代码。
<script type='text/JavaScript'> alert(document.getElementById('test').innerHTML); </script> <div id='test'>hello world</div>
为了解决这个问题,我们可以把脚本移到后面,但是我们希望程序能够无视其位置,无视是否在相应的DOM节点之后。我么可以监听window的onload事件,当window触发onload事件后调用脚本。
<script type='text/JavaScript'> function init(){ alert(document.getElementById('test').innerHTML); } window.onload=init; </script> <div id='test'>hello world</div>
在网页制作过程中,window的onload事件要求网页所有元素加载后才会触发,这样会给网页带来巨大的延迟,这是使用者所不能接受的。为了解决这个问题,很多Js框架提供了DOMReady事件代替window.onload事件,DOMReady只判断页面内所有的DOM节点是否完全生成,所以比window.onload更快。如果不使用任何Js框架,也可以模DOMReady事件,但是由于触发原理不同、不同浏览器原理还不同,我们可以绕开DOMReady事件以一种简单方式达到功能。
<script type='text/JavaScript'> function init(){ alert(document.getElementById('test').innerHTML); } </script> <div id='test'>hello world</div> ......... <script type='text/JavaScript'> init(); </script> </boday>
实际工作中,网站的头部和尾部通常会做成单独文件,用服务器端语言include到网页中,一般来说,头尾文件比较稳定,全站统一,不会经常改动,但是主体部分文件各不相同,可能由多个工程师完成,其中有的页面可能不需要用Js写应用,主体部分不需要init函数,但是JS框架会在</body>前调用init函数,此时会报错,一个简单的处理方式便是在调用init函数前判断页面内是否已经定义了init函数,定义了才去执行。
<div class='foot'> .... </div> <script type='text/JavaScript'> if(init){ init(); } </script>
相关推荐
脱离document.onload和window.onload的onload事件,可多次添加加载事件!
腾迅Web前端开发工程师笔试题及答案 1 请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性) function elementName(evt){ evt = evt|| window.event; // IE: window.event // IE用srcElement获取...
window.onload insertAfter()
5.1.2 给程序一个统一的入口——window.onload和DOMReady 5.1.3 CSS放在页头,JavaScript放在页尾 5.1.4 引入编译的概念——文件压缩 5.2 JavaScript的分层概念和JavaScript库 5.2.1 JavaScript如何分层 5.2.2...
前端项目-buy-button-js,js是一个高度可定制的UI库,用于向任何网站添加电子商务功能。
有需要的朋友是最好的参考资料。希望有所帮助!
可能你也碰到过这种情况,就是在js的... 下面是一个解决方法。至于attachEvent和addEventListener的用法,可以自己Google或百度一下。 代码如下: if (document.all){ window.attachEvent(‘onload’,函数名)//IE中 } els
2.Selenium RC中开启proxy injection(PI)模式也可以识别,这种模式提供了一个HTTP代理在浏览器之前自动更改所有接收到的HTML。window.alert, window.confirm,window.prompt在文件selenium-browserbot.js函数...
JavaScript页面渲染完毕时间监听是前端开发中一个非常常见的场景。主要目的是监听页面渲染完毕的时间,从而进行一些相关操作,如加载页面数据、初始化组件等。适用人群主要是前端开发人员,需要了解HTML、JavaScript...
浅谈js图片前端预览之filereader和window.URL.createObjectURL //preview img : filereader方式 document.getElementById('imgFile').onchange = function(e){ 5 var ele = document.getElementById('imgFile')....
window.onload = function () { console.log('window.onload 方式执行') } $(document).ready(function () { console.log('$(document).ready(function(){}) 方式执行') })
我们知道,在javascript中用来执行页面加载中的操作时候,我们会使用windows.onload=function(){}或者windows.onload=函数名(),也可以在body中调用onload事件调用方法即可,在jQuery中也有相当的代码
Android安全开发基础--15--应用程序配置文件详解(AndroidManifest.xml).pdf Android安全开发基础--2--四大组件之活动(Activity).pdf Android安全开发基础--3--四大组件之服务 (Service).pdf Android安全开发基础...
<!...<html xmlns="http://www.w3.org/1999/xhtml" > function GetPageSize() { var scrW, scrH; if(window.innerHeight && window.scrollMaxY) ... scrW = window.innerWidth ...<body onload="main();"> </html>
本来按照事件顺序,小程序初始化时触发App里的onLaunch,后面再执行页面Page里的onLoad,但是在onLaunch里请求获取是否有权限,等待返回值的时候Page里的onLoad事件就已经执行了。 //app.js App({ onLaunch: ...
资源名称:15天漫游jQuery中文翻译 word版内容简介:15天漫游jQuery中译本,不是很完整,但是也是学习jquery 不可或缺的东东1 day Window.onload() 一直是常用的javascript函数。数年来程序员们习惯了通过它在...
NULL 博文链接:https://snandy.iteye.com/blog/666530
window.onload = function() { var myShakeEvent = new Shake({ threshold: 15 }); myShakeEvent.start(); window.addEventListener('shake', shakeEventDidOccur, false); function ...
关于 Image 对象 onload 事件。 想获取的是 image 的 宽高值。所以用 onload 方法。...后来给xiaoniu同学看了后才知,img.src 应该是放在 onload 方法后边的。。 后来google下,才发现原来此类问题大家多有总