js中常用方法以及document.readyState 判断页面是否加载完成 complete和interactive

js中常用方法以及document.readyState 判断页面是否加载完成 complete和interactive,第1张

js中常用方法以及document.readyState 判断页面是否加载完成 complete和interactive

传回XML 文件资料的目前状况。   基本语法 intState = xmlDocument.readyState  说 明 这个属性是只读的,传回值有以下的可能: 0-UNINITIALIZED:XML 对象被产生,但没有任何文件被加载。 1-LOADING:加载程序进行中,但文件尚未开始解析。 2-LOADED:部分的文件已经加载且进行解析,但对象模型尚未生效。 3-INTERACTIVE:仅对已加载的部分文件有效,在此情况下,对象模型是有效但只读的。 4-COMPLETED:文件已完全加载,代表加载成功。     范 例 alert("The readyState property is " + xmlDoc.readyState)

1.窗口关闭时执行的函数 window.onbeforeunload = function(){}

2.页面加载情况判断document.readyState值可以是complete和interactive

function document.onreadystatechange() { if(document.readyState=="complete") alert(document.readyState)}

或者:

document.onreadystatechange = init

function init() {

if(document.readyState=="complete") {.........}

}

3.屏蔽右键功能和严禁选中 *** 作

//document.oncontextmenu=new Function("event.returnValue=false")

//document.onselectstart=new Function("event.returnValue=false")

4.鼠标位置判断

window.event.y和window.event.x //x,y是鼠标相对于当前浏览器的位置

window.event.screenY和window.event.screenX //screenX,screenY是相对于用户显示器的位置

window.event.clientY和window.event.clientX //clientX, clientY是鼠标当前相对于网页的位置,

window.event.offsetY和window.event.offsetX //offsetX, offsetY是鼠标当前相对于网页中的某一区域的位置,当鼠标位于页面中这一区域的左上角时offsetX=0, offsetY=0;

5.窗口大小判断

document.documentElement.scrollWidth和document.documentElement.scrollHeight //获取窗口的宽和高

6.返回值

window.event.returnValue="真的要关闭吗" //d出一个确认信息,确认事件是否要执行

return confirm("真的要关闭吗") //两个是一样的功能

7.获取随机数 parseInt(Math.random()*100) //获取1至100之间的随机数

在正常的加载过程中,js文件的加载是同步的,也就是说在js加载的过程中,浏览器会阻塞接下来的内容的解析。这时候,动态加载便显得尤为重要了,由于它是异步加载,因此,它可以在后台自动下载,并不会妨碍其它内容的正常解析,由此,便可以提高页面首次加载的速度。在IE或一些基于IE内核的浏览器中(如Maxthon),它是通过script节点的readystatechange方法来判断的,而其它的一些浏览器中,往往是通过load事件来决定的,如下代码:function dynamicLoad(){var _doc=document.getElementsByTagName('head')[0]var script=document.createElement('script')script.setAttribute('type','text/javascript')script.setAttribute('src','jquery-1.4.4.js')script.onload=script.onreadystatechange=function(){if(!this.readyState||this.readyState=='loaded'||this.readyState=='complete'){alert('done')}script.onload=script.onreadystatechange=null}}这是因为,如果script节点没有添加到DOM树中,那么在chrome和firefox中是不会响应script的load事件的。但是IE中却可以。。修改后如下代码:function dynamicLoad(){var _doc=document.getElementsByTagName('head')[0]var script=document.createElement('script')script.setAttribute('type','text/javascript')script.setAttribute('src','jquery-1.4.4.js')_doc.appendChild(script)script.onload=script.onreadystatechange=function(){if(!this.readyState||this.readyState=='loaded'||this.readyState=='complete'){这时候,所有的浏览器都可以响应,你可以尝试一下~

var oScript = document.createElement("script")

  oScript.type = "text\/javascript"

  oScript.onerror = loadError

  oScript.onload = fOnload

  document.currentScript.parentNode.insertBefore(oScript, document.currentScript)

  oScript.src = sSrc

使用这个HTMLScriptElement对象的onload函数可以判断加载完毕,用onerror判断加载失败。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11711363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存