盘点JavaScript中那些进阶操作知识(下篇)

简介: 盘点JavaScript中那些进阶操作知识(下篇)

大家好,我是IT共享者,人称皮皮。上篇文章给大家分享了盘点JavaScript中那些进阶操作知识(上篇),这篇文章继续来看看趴!


前言


相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。


1.Javascript刷新页面


history.go(0) location.reload() location=location location.assign(location) document.execCommand('Refresh') window.navigate(location) location.replace(location) document.URL=location.href


2.Js浏览器兼容问题


1).浏览器事件监听

function addEventhandler(target,type,fn,cap){            if(target.addEventListener)               /*添加监听事件*/              {                       target.addEventListener(type,fn,cap)                }            else{                 target.attachEvent('on'+type,fn)  /*IE添加监听事件*/               }          }       function removeEventhandler(target,type,fn,cap){            if(target.removeEventListener)            /*删除监听事件*/             {                target.removeEventListener(type,fn,cap)                }            else{                 target.detachEvent('on'+type,fn)    /*IE删除监听事件*/               }          }


2).鼠标键判断

function bu(event){var bt= window.button || event.button;if (bt==2)  {  x=event.clientX  y=event.clientY     alert("您点击了鼠标右键!坐标为:"+x+','+y)  }else if(bt==0)  {    a=event.screenX    b=event.screenY  alert("您点击了鼠标左键!坐标为:"+a+','+b)  }else if(bt==1)  {  alert("您点击了鼠标中键!");  }}


3).判断是否按下某键

function k(event){var ke=event.keyCode || event.whichif(event.shiftKey==1)  {  alert('您点击了shift');  } alert(ke) alert(event.type)}


4).网页内容节点兼容性

1)).网页可视区域宽高
var w=document.body.offsetWidth|| document.documentElement.clientWidth|| document.body.clientWidth;var h=document.body.offsetHeight|| document.documentElement.clientHeight || document.body.clientHeight;
2)).窗体宽度高度 比可视区域要大
window.innerHeight - 浏览器窗口的内高度(以像素计) window.innerWidth - 浏览器窗口的内宽度(以像素计)
3)).页面滚动条距离顶部的距离
var t=document.documentElement.scrollTop || document.body.scrollTop
4)).页面滚动条距离左边的距离
var s=document.documentElement.scrollLeft || document.body.scrollLeft
5)).元素到浏览器边缘的距离
function off(o){   #元素内容距离浏览器边框的距离(含边框)        var l=0,r=0;        while(o){            l+=o.offsetLeft+o.clientLeft;            r+=o.offsetTop+o.clientTop;            o=o.offsetParent;        }        return {left:l,top:r};    }
6)).获取滚动条高度
// 滚动条的高度function getScrollTop() {var scrollTop = 0;if (document.documentElement && document.documentElement.scrollTop) {        scrollTop = document.documentElement.scrollTop;    }else if (document.body) {        scrollTop = document.body.scrollTop;    }return scrollTop;}
7)).DOM节点操作
function next(o){//获取下一个兄弟节点        if (o.nextElementSibling) {            return o.nextElementSibling;        } else{            return o.nextSibling;        };    }    function pre(o){//获取上一个兄弟节点        if (o.previousElementSibling) {            return o.previousElementSibling;        } else{            return o.previousSibling;        };    }    function first(o){//获取第一个子节点        if (o.firstElementChild) {            return o.firstElementChild;//非IE678支持        } else{            return o.firstChild;//IE678支持        };    }    function last(o){//获取最后一个子节点        if (o.lastElementChild) {            return o.lastElementChild;//非IE678支持        } else{            return o.lastChild;//IE678支持        };    }
8)).窗口的宽高
document.body.scrollWidth||document.docuemntElement.scrollWidth;//整个网页的宽document.body.scrollHeight||document.docuemntElement.scrollHeight;//整个网页的高
9)).屏幕分辨率的宽高
window.screen.height;//屏幕分辨率的高window.screen.width;//屏幕分辨率的宽
10)).坐标
window.screenLeft;//x坐标window.screenX;//X坐标window.screenTop;//y坐标window.screenY;//y坐标
11)).屏幕可用工作区宽高
window.screen.availHeight window.screen.availWidth


5).事件源获取

e.target || e.srcElement


6).行外样式

funtion getStyle(obj,name){   if(obj.currentStyle){      //IE    return obj.currentStyle[name];    }else{    //Chrom,FF   return getComputedStyle(obj,false)[name];      } }


7).阻止事件冒泡函数封装

function pre(event){
           var e = event || window.event;
           if(e.stopPropagation){   // 通用方式阻止冒泡行为
               e.stopPropagation();
           }else{    //IE浏览器
               event.cancelBubble = true;
           }


8).阻止浏览器默认行为(例如点击右键出来菜单栏)

function stop(event) {
     var e = event || window.event;
     if (e.preventDefault){
         e.preventDefault();   // 标准浏览器
     }else{
         e.returnValue = false; // IE浏览器
     }
}


3.严格模式


"use strict"


4.判断变量类型


typeof  variableinstance  instanceof  objectinstance.constructor== objectObject.prototype.toString.call(instance)


5.下载服务器端文件


<a href="http://somehost/somefile.zip" download="myfile.zip">Download file</a>


总结


这篇文章主要介绍了JavaScript的进阶操作命令!希望对大家的学习有所帮助。


相关文章
|
6月前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第3天】前端开发中的异步基石:AJAX与Fetch。AJAX,使用XMLHttpRequest,处理跨域、回调地狱和错误处理。Fetch,基于Promise,简化请求,但需注意默认无跨域头和HTTP错误处理。两者各有优劣,理解其问题与解决策略,能提升前端应用的性能和用户体验。
175 24
|
6月前
|
前端开发 JavaScript 安全
JavaScript进阶-JavaScript库与框架简介
【7月更文挑战第11天】JavaScript库和框架加速Web开发,但也带来挑战。选择适合项目、团队技能的库或框架,如React、Angular、Vue,是关键。保持依赖更新,注意性能优化,避免过度依赖。遵循最佳实践,确保安全性,如防XSS和CSRF。学习基础,结合代码示例(如React计数器组件),提升开发效率和应用质量。
75 1
|
6月前
|
缓存 JavaScript 前端开发
JavaScript进阶 - Web Workers与Service Worker
【7月更文挑战第4天】JavaScript的Web Workers和Service Worker增强了Web性能。Web Workers处理后台多线程,减轻主线程负担,但通信有开销,受同源策略限制。Service Worker则用于离线缓存和推送通知,需管理其生命周期、更新策略,并确保安全。两者都带来了挑战,但也极大提升了用户体验。通过理解和优化,开发者能构建更高效、安全的Web应用。
148 2
|
6月前
|
资源调度 JavaScript 前端开发
JavaScript进阶 - JavaScript库与框架简介
【7月更文挑战第5天】JavaScript库和框架构成了前端开发的核心,如jQuery简化DOM操作,Angular、React和Vue提供全面解决方案。选择时要明确需求,避免过度工程化和陡峭学习曲线。使用版本管理工具确保兼容性,持续学习以适应技术变化。示例展示了jQuery和React的简单应用。正确选择和使用这些工具,能提升开发效率并创造优秀Web应用。
63 2
|
6月前
|
存储 前端开发 安全
JavaScript进阶 - 浏览器存储:localStorage, sessionStorage, cookies
【7月更文挑战第2天】探索Web存储:localStorage持久化,sessionStorage会话限定,cookies则伴随HTTP请求。了解它们的特性和限制,如localStorage的5MB容量限制、跨域问题,sessionStorage的生命周期,及cookies的安全与带宽消耗。使用时需权衡安全、效率与应用场景。示例代码展示存储与检索方法。
385 2
|
6月前
|
JavaScript 前端开发 索引
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
53 1
|
6月前
|
存储 JavaScript 前端开发
js/javascript 操作字符串【全】(含常用的操作字符串的lodash)
js/javascript 操作字符串【全】(含常用的操作字符串的lodash)
52 1
|
6月前
|
缓存 前端开发 JavaScript
JavaScript进阶 - Web Workers与Service Worker
【7月更文挑战第10天】在Web开发中,Web Workers和Service Worker提升性能。Workers运行后台任务,防止界面冻结。Web Workers处理计算密集型任务,Service Worker则缓存资源实现离线支持。常见问题包括通信故障、资源限制、注册错误及缓存更新。通过示例代码展示了两者用法,并强调生命周期管理和错误处理的重要性。善用这些技术,可构建高性能的Web应用。
132 0
|
6月前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第9天】JavaScript进阶:AJAX与Fetch API对比。AJAX用于异步数据交换,XMLHttpRequest API复杂,依赖回调。Fetch API是现代、基于Promise的解决方案,简化请求处理。示例:`fetch(&#39;url&#39;).then(r =&gt; r.json()).then(data =&gt; console.log(data)).catch(err =&gt; console.error(err))`。注意点包括检查HTTP状态、错误处理、CORS、Cookie和超时。Fetch提高了异步代码的可读性,但需留意潜在问题。
116 0
|
6月前
|
存储 JavaScript 前端开发
JavaScript进阶 - 浏览器存储:localStorage, sessionStorage, cookies
【7月更文挑战第8天】Web开发中的客户端存储技术,如`localStorage`, `sessionStorage`和`cookies`,用于保存用户设置和跟踪活动。`localStorage`持久化存储,`sessionStorage`随页面会话消失。两者提供基本的增删查改操作,但有大小限制和安全风险。`cookies`适合会话管理,可设置过期时间并能跨域。使用时注意存储量、安全性和跨域策略,选择适合场景的存储方式。
267 0