• 20151210小问题2


    1、各浏览器下 scrollTop的差异
    IE6/7/8:
    对于没有doctype声明的页面里可以使用  document.body.scrollTop 来获取 scrollTop高度
    对于有doctype声明的页面则可以使用 document.documentElement.scrollTop;
    Safari:
    safari 比较特别,有自己获取scrollTop的函数 : window.pageYOffset ;
    Firefox:
    火狐等等相对标准些的浏览器就省心多了,直接用 document.documentElement.scrollTop ;
    2、获取scrollTop值
    完美的获取scrollTop 赋值短语 :
    var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

    DTD相关说明:

    页面具有 DTD,或者说指定了 DOCTYPE 时,使用 document.documentElement。

    页面不具有 DTD,或者说没有指定了 DOCTYPE,时,使用 document.body。

    在 IE 和 Firefox 中均是如此。

    为了兼容,不管有没有 DTD,可以使用如下代码:

    var scrollTop = window.pageYOffset  //用于FF
                    || document.documentElement.scrollTop  
                    || document.body.scrollTop  
                    || 0;

    documentElement 和 body 相关说明:

    body是DOM对象里的body子节点,即 <body> 标签;

    documentElement 是整个节点树的根节点root,即<html> 标签;

    DOM把层次中的每一个对象都称之为节点,就是一个层次结构,你可以理解为一个树形结构,就像我们的目录一样,一个根目录,根目录下有子目录,子目录下还有子目录。

    以HTML超文本标记语言为例:整个文档的一个根就是,在DOM中可以使用document.documentElement来访问它,它就是整个节点树的根节点。而body是子节点,要访问到body标签,在脚本中应该写:document.body。

    3.javascript:void(0)

    <a href="javascript:doTest2();void(0);">here</a>
    Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。
    void 操作符用法格式如下:
    1. javascript:void (expression)
    2. javascript:void expression
    expression 是一个要计算的 Javascript 标准的表达式。表达式外侧的圆括号是选的,但是写上去是一个好习惯。 (实现版本   Navigator 3.0   )
    你以使用 void 操作符指定超级链接。表达式会被计算但是不会当前文档处装入任何内容。
    下面的代码创建了一个超级链接,当用户以后不会发生任何事。当用户链接时,void(0) 计算为 0,但 Javascript 上没有任何效果。
    <A HREF="javascript:void(0)">单此处什么也不会发生</A>
    下面的代码创建了一个超级链接,用户单时会提交表单。
    <A HREF="javascript:void(document.form.submit())">单此处提交表单</A>


    4.a href=#与 a href=javascript:void(0) 的区别

    #包含了一个位置信息
    默认的锚是#top 也就是网页的上端
    而javascript:void(0)   仅仅表示一个死链接
    这就是为什么有的时候页面很长浏览链接明明是#是
    跳动到了页首
    而javascript:void(0) 则不是如此
    所以调用脚本的时候最好用void(0)
    或者<input onclick>
    <div onclick>等

  • 相关阅读:
    二进制原码、反码、补码
    Activiti5.22.0扩展支持达梦数据库
    ABP token过期时间修改 放在appsettings.json
    巧用reduce 实现 checkbox 选中勾选联动
    用filter: dropshadow()给透明图片添加阴影
    MySQL安装后文本20220628
    记录U盘安装centos系统的 uefi的启动我过程
    openssl 生成自签证书及查看证书细节
    给脚本添加到环境变量_让你的脚本可以在任意地方都可执行的几个方法
    使用u盘安装centos7.2踩坑过程
  • 原文地址:https://www.cnblogs.com/sunshinegirl-7/p/5037789.html
Copyright © 2020-2023  润新知