页面加载时就确定函数实现

我们知道使用js获取浏览器的信息时经常涉及浏览器的兼容性.例如获取浏览器的滚动条

Js代码  

  1. // Cross browser gets the position of scroll  
  2. com.whuang.hsj.getScroll=function(){  
  3.     return {  
  4.         top:document.documentElement.scrollTop || document.body.scrollTop,  
  5.         left:document.documentElement.scrollLeft || document.body.scrollLeft,  
  6.         height:document.documentElement.scrollHeight ||document.body.scrollHeight  
  7.     }  
  8. }  

 上面的方法每次执行时都得判断,所以我进行了如下优化:

Js代码  

  1. // Cross browser gets the position of scroll  
  2. com.whuang.hsj.getScroll=(function(){  
  3.     if(document.documentElement.scrollTop!=='undefined'&&document.documentElement.scrollTop!==0)  
  4.     {  
  5.         return function(){  
  6.             return {  
  7.                 top:document.documentElement.scrollTop,  
  8.                 left:document.documentElement.scrollLeft,  
  9.                 height:document.documentElement.scrollHeight  
  10.             };  
  11.         };  
  12.     }else return function(){  
  13.         return {  
  14.             top:document.body.scrollTop,  
  15.             left:document.body.scrollLeft,  
  16.             height:document.body.scrollHeight  
  17.         };  
  18.     };  
  19.       
  20. })();  

 核心思想:在初始化时就确定函数的实现方式.

但是在使用过程中出现了问题,因为它的判断条件是:

if(document.documentElement.scrollTop!=='undefined'&&document.documentElement.scrollTop!==0)

但是在页面初始化时这个判断的依据是有问题的,不是实时的.在火狐中就有问题.

 

时间: 2024-12-30 22:10:26

页面加载时就确定函数实现的相关文章

Javascript在网页页面加载时的执行顺序

javascript|加载|网页|页面|执行 一.在HTML中嵌入Javasript的方法 直接在Javascript代码放在标记对<script>和</script>之间 由<script />标记的src属性制定外部的js文件 放在事件处理程序中,比如:<p >点击我</p> 作为URL的主体,这个URL使用特殊的Javascript:协议,比如:<a href="javascript:alert('我是由javascript

Javascript代码在页面加载时的执行顺序介绍_基础知识

一.在HTML中嵌入Javasript的方法1.直接在Javascript代码放在标记对<script>和</script>之间2.由<script />标记的src属性制定外部的js文件3.放在事件处理程序中,比如:<p onclick="alert('我是由onclick事件执行的Javascript')">点击我</p>4.作为URL的主体,这个URL使用特殊的Javascript:协议,比如:<a href=&q

完美解决JS文件页面加载时的阻塞问题_javascript技巧

关于页面加载时的时间消费,许多书中都做出了介绍,也提出了很多种方法.本文章就详细介绍XHR注入. 概述:JS分拆的方法 1.XHR注入:就是用ajax异步请求同域包含脚本的文件,然后将返回的字符串转化为脚本使用,该方法不会造成页面渲染和onload事件的阻塞,因为是异步处理,推荐使用. 2.iframe注入:加载一个iframe框架,通过使用iframe框架中的脚本来避免src方式加载脚本的阻塞,但是iframe元素开销较大,不推荐. 3.DOM注入:就是创建script元素,通过制定该元素的s

jQuery在页面加载时动态修改图片尺寸的方法

 这篇文章主要介绍了jQuery在页面加载时动态修改图片尺寸的方法,实例分析了jQuery操作图片的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了jQuery在页面加载时动态修改图片尺寸的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 $(window).bind("load", function() { // IMAGE RESI

如何让页面加载时,隐藏的图片还隐藏

问题描述 如何让页面加载时,隐藏的图片还隐藏 重新进入一个页面,由于网速原因,在进入页面时加载一会,那些隐藏的图片就会显示,如何让页面加载时,隐藏的图片还隐藏 解决方案 焦点图吗?如果是你设置好容器的宽度,高度,设置overflow:hidden就不会显示出来了,要不你放到window.onload里面用js处理的话,没有增加显示控制会导致页面变形 解决方案二: 没理解你的意思 如果是前台图片 直接用js加载就好 如果这些图片显示涉及到权限 就后台加代码 解决方案三: 我是当鼠标悬浮时显示,离开

编程-javascript addLoadEvent函数为什么在页面加载后调用的函数没有执行

问题描述 javascript addLoadEvent函数为什么在页面加载后调用的函数没有执行 # 函数如下 function addLoadEvent(func){ var oldonload=window.onload; if(typeof window.onload !='function'){ window.onload=func; } else{ window.onload=function(){ oldonload(); func(); } } } function loadEve

跨域网站实现了单点登录,但各网站的每个页面继承验证类,导致页面加载时 刷新两次

问题描述 跨域网站实现了单点登录,但各网站的每个页面继承验证类,导致页面加载时刷新两次各网站加载较慢单点登录原理是各网站的用户凭证保存到验证服务器的cache中请问有什么异步方法不让每个页面都刷新一次谢谢 解决方案 解决方案二:每个页面都访问单点登录系统?什么情况?你的网站,如果没有登录信息,才需要访问单点登录网页.而如果已经登陆过,你的网页该干什么还干什么.从单点登录网页重定向回到当前网站页面之后,当前网站应该从单点登录网站(根据传来的url参数)把用户的信息取过来保存,以后在打开别的页面时就

jquery页面加载时鼠标移动事件

问题描述 jquery页面加载时鼠标移动事件 如何在页面首次加载进来的时候也能触发鼠标移动的这个事件 $(function(){ $(".newsbox .tab span").hover(function(){ $(this).addClass("cur").siblings().removeClass("cur"); var index = $(".newsbox .tab span").index(this); $(&q

如何在JSP页面加载时就把数据库中一张表的信息读出来

问题描述 因为是页面加载时所以不能访问servlet用bean的话只能输出一个bean,也就是表中一行数据的信息 解决方案 解决方案二:求助大神啊呜呜呜解决方案三:$(function(){ajax})解决方案四:jsp里body添加onload方法,里面ajax请求解决方案五:onload+ajax.