JavaScript开发中几个常用知识点总结
最近在做项目的时候自己写了一些JavaScipt代码,于是自己又进行简单的查阅资料整理了一下,发现了如下几个比较有用的知识点:
1、三种声明函数的方式
2、jQuery $(document).ready() 与window.onload的区别
3、location.href
4、获取url中的参数
5、判断是否存在函数的方法
6、设置Iframe高度
7、解决文本框设置只读后按退键后退页面
1、三种声明函数的方式
1、声明式的函数
function functionName(arg1, arg2) {alert(arg1+arg2);}
2、匿名函数
var functionName1 = new Function("arg1", "arg2", "alert(arg1 + arg2)");
3、直接量函数
functionName2 = function (arg1, arg2) { alert(arg1 + arg2); };
三种函数调用方式
functionName("1", "22");
functionName1("2", "11");
functionName2("Hello", "World");
继续看,还可以这样写,第一次体验很不错
functionName1.love = "Hello World!";
alert(functionName1.love);
functionName1.Test = function () { alert("Test"); }
functionName1.Test();
2、jQuery $(document).ready() 与window.onload的区别
1、执行时间
window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。 $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。
2、编写个数不同
window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个,执行后面的一个。 $(document).ready()可以同时编写多个,并且都可以得到执行。
3、简化写法
window.onload没有简化写法 。 $(document).ready(function(){})可以简写成$(function(){})。
注意:window.onload和body.onload之间的关系和区别,最好自己亲自去实践一下。
3、location.href
1、top.location.href=”url” 在顶层页面打开url(跳出框架)
2、parent.location.href=”url” 在父窗口打开Url地址
3、self.location.href=”url” 和 this.location.href=”url” 和 window.location.href=“url” 和location.href 都是在本页面打开url地址
由此我解决了一个问题:就是使用了Iframe框架,同时也控制用户超时重新登录的限制,所以有时候登录页面会出现在页面中的某部分。
处理方式就比较简单就是在登录页面通过JavaScript进行一次判断即可
<script type="text/javascript">
if (window != top)
top.location.href = location.href;
</script>
4、获取url中的参数
1、获取指定url指定参数的值
//获取指定url的指定参数值
//name为参数名
//url为指定的url地址
function GetQueryStringRegExp(name,url) {
var reg = new RegExp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)", "i");
if (reg.test(url)) return decodeURIComponent(RegExp.$2.replace(/\+/g, " ")); return "";
}
2、获取当前页面url指定参数的值
//获取url指定参数的值
function GetQueryStringRegExp(name) {
var reg = new RegExp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)", "i");
if (reg.test(location.href)) return decodeURIComponent(RegExp.$2.replace(/\+/g, " ")); return "";
}
5、判断是否存在函数的方法
先看代码
window.onload=function(){
try{
if(test&&typeof(test)=="function"){
test();
}
else{
alert("不存在的函数");
}
}
catch(exception){
alert(exception);
}
}
function test(){
alert("函数执行……");
}
第一种情况就是函数的确存在,那么就会执行该函数。
第二种情况就是函数不存在,但是在此域中存在该名称的对象或者变量,则为提示不存在的函数。
第三种情况就是函数不存在,对象或者变量也不存在,就是该名称是未定义的,则会提示函数未定义。
6、设置Iframe高度
有时候在网页中可能需要嵌入Iframe,而对Iframe的控制又不能固定,那么就可以自动根据Iframe中内容进行自动设置高度。在HTML的Iframe标签中加入一个onload事件,就是在Iframe页面加载完毕时进行计算设置高度。
function SetIFrameHeight(iFrameId) {
if (iFrameId == "") {return;}
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : 0;
var pTar = null;
if (document.getElementById) {
pTar = document.getElementById(iFrameId);
} else {
eval('pTar=' + iFrameId + ';');
}
pTar.style.display = "block";
if (Sys.ie) {
if (Sys.ie == '9.0') {
pTar.height = pTar.contentWindow.document.body.offsetHeight + 15 + "px";
pTar.width = pTar.contentWindow.document.body.scrollWidth + "px";
} else if (Sys.ie == '8.0') {
pTar.height = pTar.Document.body.offsetHeight + 25 + "px";
pTar.width = pTar.Document.body.scrollWidth + "px";
} else {
pTar.height = pTar.Document.body.scrollHeight + 25 + "px";
pTar.width = pTar.Document.body.scrollWidth + "px";
}
}
}
参数就是该Iframe的id传入,暂时通过的是IE8测试是没问题的。
7、解决文本框设置只读后按退键后退页面
解决方法就是定义一个全局的document.documentElement.onkeydown事件,来检测页面每次按键按下时的操作
document.documentElement.onkeydown = function (evt) {
var b = !!evt, oEvent = evt || window.event;
if (oEvent.keyCode == 8) {
var node = b ? oEvent.target : oEvent.srcElement;
var reg = /^(input|textarea)$/i, regType = /^(text|textarea)$/i;
if (!reg.test(node.nodeName) || !regType.test(node.type) || node.readOnly || node.disabled) {
if (b) {
oEvent.stopPropagation();
}
else {
oEvent.cancelBubble = true;
oEvent.keyCode = 0;
oEvent.returnValue = false;
}
}
}
}
检测退格键时,所对应的操作进行判断,来处理禁用回退页面刷新的问题。
JavaScript开发中几个常用知识点总结的更多相关文章
- Hybrid App 应用开发中 9 个必备知识点复习(WebView / 调试 等)
前言 我们大前端团队内部 ?每周一练 的知识复习计划继续加油,本篇文章是 <Hybrid APP 混合应用专题> 主题的第二期和第三期的合集. 这一期共整理了 10 个问题,和相应的参考答 ...
- iOS开发中关于UIImage的知识点总结
UIImage是iOS中层级比较高的一个用来加载和绘制图像的一个类,更底层的类还有 CGImage,以及iOS5.0以后新增加的CIImage.今天我们主要聊一聊UIImage的三个属性: image ...
- Dubbo在开发中的一些常用配置
介绍Dubbo在开发中的一些常用配置,文中内容主要参考dubbo文档配置和示例两节,详细可移步访问 传送站 1. 属性配置方法及加载顺序 属性常用配置方法主要有三种: 第一种是通过启动时在虚拟机参数 ...
- 稍微谈一下 javascript 开发中的 MVC 模式
随着前台开发日益受到重视,客户端代码比重日益增加的今天,如何在javascript开发里应用MVC模式,这个问题似乎会一直被提到,所以偶在这里粗略的谈一下自己的看法吧. MVC模式的基本理念,是通过把 ...
- Java开发中的eclispe常用快捷键&全部快捷键
Java开发中的eclispe常用快捷键&全部快捷键 Ctrl+1 快速修复(经典快捷键)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ ...
- 【Hybird】274-Hybird App 应用开发中 5 个必备知识点复习
前言 我们大前端团队内部 ?每周一练 的知识复习计划还在继续,本周主题是 <Hybird APP 混合应用专题> ,这期内容比较多,篇幅也相对较长,每个知识点内容也比较多. 之前分享的每周 ...
- Hybird App 应用开发中5个必备知识点复习
前言 我们大前端团队内部 ?每周一练 的知识复习计划还在继续,本周主题是 <Hybird APP 混合应用专题> ,这期内容比较多,篇幅也相对较长,每个知识点内容也比较多. 之前分享的每周 ...
- 说一说Web开发中两种常用的分层架构及其对应的代码模型
昨天妹子让我帮她解决个问题,本以为可以轻松搞定,但是打开他们项目的一瞬间,我头皮发麻.本身功能不多的一个小项目,解决方案里竟然有几十个类库.仅仅搞明白各个类库的作用,代码层次之间的引用关系就花了一个多 ...
- JavaScript开发中常用的代码规范配置文件
一.jsconfig.json { compilerOptions: { target: 'es6', experimentalDecorators: true, allowSyntheticDefa ...
随机推荐
- 学习Jammendo代码的心路历程(一)简单的淡出效果实现
最近在看 Jammendo代码,打算将学习过程简单的记录下来,下面开始第一篇: 打开Jammendo运行之后,出弹出一个对话框,跳过对话框之后,会有一个淡出界面跳转到首页效果的实现.那么这个效果是怎么 ...
- nodejs oj在线笔试应对方案(讲几种输入处理方法)
最近参加了一些线上笔试.但是...我不是学计算机的,只会js不会c++,java,c(好吧都学过,不过忘了).可怕的是我也没学过nodejs,怎么 办,怎么办.node不就是用的js吗?所以只用学会标 ...
- poj 1721 CARDS (置换群)
题意:给你一个数列,第i号位置的数位a[i],现在将数列进行交换,交换规则为a[i]=a[a[i]]:已知交换s次之后的序列,求原先序列 思路:置换的问题必然存在一个循环节,使一个数列交换n次回到原来 ...
- Wpf学习之路……
Wpf学习之路-- Wpf是 .net中一门做winform的技术,和传统的winform的区别在于: 1. 原来的winform就是拖控件,而wpf的控件都死自己拿标记语言(xaml ...
- windows server 定期备份数据库脚本
将以下文件保存为.bat脚本,在计划任务中添加定时任务运行此脚本即可.脚本中的备份目录,数据库目录和压缩文件目录请自行修改. @echo off rem 当前路径切换到备份数据库目录 cd D:\wa ...
- 使用HTML5的canvas做图片剪裁
前言 图片裁剪上传,不仅是一个很贴合用户体验的功能,还能够统一特定图片尺寸,优化网站排版,一箭双雕. 需求就是那么简单,在浏览器里裁剪图片并上传到服务器. 我第一个想到的方法就是,将图片和裁剪参数(x ...
- 在ElasticSearch中使用 IK 中文分词插件
我这里集成好了一个自带IK的版本,下载即用, https://github.com/xlb378917466/elasticsearch5.2.include_IK 添加了IK插件意味着你可以使用ik ...
- 你不得不知的逻辑或(||)与(&&)非(!)
最近重新翻开原生JS,又得到很多不同的体会,虽然现在开发框架那么多,但很多思想都还是离不开原生的基础.今天呢,我就根据自己的学习总结一下逻辑与(&&)和(逻辑或(||)和逻辑非(!). ...
- 【Azure】Azure学习方法和学习资料
学习方法: DEX为入门培训,fundamental book进阶材料,Azure 官方为补充权威材料,网站一些大拿的Blog是很多实践精华,推荐阅读. 推荐教材和学习内容: EDX培训:http:/ ...
- SSE 系列内置函数中的 shuffle 函数
SSE 系列内置函数中的 shuffle 函数 邮箱: quarrying@qq.com 博客: http://www.cnblogs.com/quarryman/ 发布时间: 2017年04月18日 ...