谈谈document.ready和window.onload的区别
在jQuery里面,我们可以看到两种写法:$(function(){}) 和$(document).ready(function(){})这两个方法的效果都是一样的,都是在dom文档树加载完之后执行一个函数(注意,这里面的文档树加载完不代表全部文件加载完)。而window.onload是在dom文档树加载完和所有文件加载完之后执行一个函数。也就是说$(document).ready要比window.onload先执行。那么jQuery里面$(document).ready函数的内部是怎么实现的呢?下面我们就来看看:我们来为document添加一个ready函数:document.ready = function (callback) {
///兼容FF,Google
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', function () {
document.removeEventListener('DOMContentLoaded', arguments.callee, false);
callback();
}, false)
}
//兼容IE
else if (document.attachEvent) {
document.attachEvent('onreadytstatechange', function () {
if (document.readyState == ...
查看全文
posted @ 2016-05-04 17:44:10
javascript检测浏览器是否在激活(可视)状态
直接上代码, 需要的复制走<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<style>
table, th, td{font-size:12px; border:1px solid gray; border-collapse:collapse;}
</style>
<title>likelys.com</title>
<body>
<script>
function bind(obj, type, fn){
if(!obj){return false;}
if(obj.attachEvent){
obj.attachEvent('on'+type, function(){fn(window.event)});
}else{
obj.addEventListener(type, fn, false);
}
}
// 设置隐藏属性和可见改变事件的名称,属性需要加浏览器前缀
var hidden, state, visibilityChange, pageStatus = true;
if (typeof document.hidden !== "undefined") {
hidden = "hidden";
visibilityChange = "visibilitychange";
state = &qu...
查看全文
posted @ 2015-09-18 12:49:47