最近在做项目的时候自己写了一些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.οnlοad=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;}}}}

检测退格键时,所对应的操作进行判断,来处理禁用回退页面刷新的问题。

转载于:https://www.cnblogs.com/BlogofOldK/p/5289713.html

JavaScript开发中几个常用知识点总结相关推荐

  1. 嵌入式开发中的C语言知识点

    嵌入式开发中的C语言知识点 1.关键字 2.数据类型 3.内存管理和存储架构 4.指针和数组 5.结构类型和对齐 6.预处理机制 1.关键字 几乎每一门语言中都有关键字,具有特殊功能,C语言也不例外, ...

  2. 全方位地介绍JavaScript开发中的各个主题《JavaScript编程全解》(好书分享更新中)

    JavaScript编程全解 作者: [日]井上诚一郎 / [日]土江拓郎 / [日]滨边将太 出版社: 人民邮电出版社 译者: 陈筱烟 内容简介  · · · · · · 本书全方位地介绍了Java ...

  3. Android开发中的一些小知识点记录(101-120)

    编写不易,如有转载,请声明出处:http://blog.csdn.net/zxc514257857/article/details/118554522 Android开发中的一些小知识点记录(1-20 ...

  4. Java开发中的eclispe常用快捷键全部快捷键

    Java开发中的eclispe常用快捷键&全部快捷键 Ctrl+1 快速修复(经典快捷键) Ctrl+D: 删除当前行  Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt ...

  5. 【JavaScript】JS开发中五个常用功能/案例(36-40)(牛客题解)

  6. 我在架构设计和代码开发中的一些常用原则

    简介: 在日常的开发和设计过程中,大家对技术设计上的一些问题往往会面临很多的选择,不同的人会有不同的选择.本文介绍的就是我在工作中遇到的一些问题而总结和使用到的一些常用原则. 不管我一生中取得了多大的 ...

  7. 前端JavaScript开发中需要注意的代码问题

    在我们进行前端开发的过程中,需要遵循一定的代码编写规则,这样才能够让我们写出更合理的.易于阅读和维护的代码,那么你知道在JavaScript中有哪些需要注意的地方吗? 一.块级作用域let 取代 va ...

  8. 硬件电路开发中的电容常用知识

    电容是一种电子元器件.是两块导体中间夹着一块绝缘体构成的电子组件,是电子设备中最基础也是最重要的组件之一. 电容用途非常多,主要有如下几种: 1.隔直流:阻止直流电通过,而让交流电通过. 2.旁路(去 ...

  9. 硬件电路开发中晶体三极管常用知识

    晶体三极管是基本电子元器件之一,具有电流放大的作用.晶体三极管能以基极电流微小的变化量来控制集电极电流较大的变化量.这是晶体三极管最基本的和最重要的特性.晶体三极管也可以用作无触点开关. 晶体三极管的 ...

最新文章

  1. html设置复选框图片,css实现图片右上角添加复选框的方法
  2. Qt Creator缩进文字或代码
  3. C++类的内联成员函数应放在哪
  4. python处理图片隐写分析_Python3简单实现隐写术
  5. STM32系统结构图理解及GPIO学习笔记
  6. 群贤路附近哪有计算机学校,袍江,镜湖,皋埠,富盛…绍兴各镇学校2017年施教区划定!你家孩子该在哪就读?...
  7. 学习3D建模电脑配置要求
  8. 圆柱壳matlab,[matlab遗传算法工具箱论文]基于遗传算法和BP神经网络的圆柱壳大...
  9. UX美即好用效应 Aesthetic Usability Effect
  10. 《Web API 的设计与开发》读书笔记
  11. html恶搞之无限弹窗
  12. 安装Fedora(附镜像下载地址)
  13. 【JAVA】学习java 基础知识
  14. 使用wxLog实现循环保存日志的解决方案(附详细代码)—— 定时执行专家
  15. 永磁同步电机矢量控制中的双闭环是什么意思_电机控制发展方向
  16. 阿里2013年双十一准备中的技术突破与亮点
  17. 测试发布,无图版~《Windows Phone 7.5本质论》第一章
  18. IDL中提供的[source]属性,是为了让实现类宣扬它支持哪几个对外接口注册。
  19. 热管理设计Taitherm (ex-Radtherm) v12.1.1 Win64 Linux64 2CD
  20. “网络三结义”--mpls 进阶实验详细配置

热门文章

  1. spring源码分析第五天------springAOP核心原理及源码分析
  2. 计算机科学与python编程导论_计算机科学入门和使用Python编程
  3. java面试题_1000道Java工程师面试题+答案PDF485页
  4. floodlight ovs 更改拓扑_淘宝更改类目降权多久?被降权了怎么办?_推广运营(淘宝天猫)...
  5. java读取excel数据的方法是_java怎么读取excel文件里的数据
  6. limit实现原理 mysql_解读数据库:深入分析MySQL中事务以及MVCC的实现原理
  7. stm32 输入捕获 测量脉宽
  8. (DAG+固定终点的最长路和最短路)硬币问题
  9. java applet程序设计,Java Applet程序设计基础
  10. mysql获取最好成绩对应数据的其他项_开源数据同步神器——canal