第五章 javascript编程可养成的好习惯
用户点击某个链接时弹出一个新窗口
javascript使用window对象的open()方法来创建新的浏览器窗口,这个方法有三个参数:
window.open(url,name,features)
url:新窗口地址,如果省略,则弹出空白窗口
name:新窗口的名字
features:新窗口的属性。
比如:
function open_url(url){
window.open(url,"new-window","width:320,height:480");
}
用 “javascript:” 伪协议来调用上面那个函数。(“javascript:” 伪协议让我们可以通过一个链接来调用javascript函数)
<body>
<a href="javascript:open_url('http://www.baidu.com');">百度</a>
<script type="text/javascript">
function open_url(url){
window.open(url,"new-window","width:320,height:480");
}
</script>
</body>
用onclick事件处理函数作为属性 嵌入<a>标签
<a href="#" onclick="open_url('http://www.baidu.com');return false;">百度2</a>
<script type="text/javascript">
function open_url(url){
window.open(url,"new-window","width:320,height:480");
}
</script>
上面两种方法没有预留退路,如果用户禁用浏览器的javascript1功能,这样的链接就没用处了。
预留退路就是说,虽然在遇到不支持js的浏览器或者用户禁用js这类障碍某些功能无法使用,但最基本的操作仍能顺利完成。
<!-- 预留退路的做法-->
<a href="http://www.baidu.com" onclick="open_url('http://www.baidu.com'); return false">百度3</a> <!--预留退路的简化版-->
<a href="http://www.baidu.com" onclick="open_url(this.getAttribute('href'); return false">百度4</a> <!--预留退路的最简化版-->
<a href="http://www.baidu.com" onclick="open_url(this.href); return false">百度4</a> <!--由DOM提供的this.href属性-->
现在即使javascript已被禁用这个链接也是可用的。
行为和结构分离开:
<a href="http://www.baidu.com" class="link">百度5</a> <script type="text/javascript">
function open_url(url){
window.open(url,"new-window","width:320,height:480");
} window.onload = prepareLinks;
function prepareLinks(){
var links=document.getElementsByTagName('a');
for (var i=0; i<links.length; i++){
if (links[i].getAttribute('class') == 'link'){
links[i].onclick = function(){
open_url(this.getAttribute('href'));
return false;
}
}
}
}
</script>
第五章 javascript编程可养成的好习惯的更多相关文章
- 第五章 JavaScript对象及初识面向对象
第五章 JavaScript对象及初识面向对象 一.对象 在JavaScript中,所有事物都是对象,如字符串.数值.数组.函数等. 在JavaScript对象分为内置对象和自定义对象,要处理一些 ...
- 学习笔记 第十五章 JavaScript基础
第15章 JavaScript基础 [学习重点] 了解JavaScript基础知识 熟悉常量和变量 能够使用表达式和运算符 正确使用语句 能够掌握数据类型和转换的基本方法 正确使用函数.对象.数组 ...
- 第五章JavaScript
创建数组://1.字面量方式创建 (推荐大家使用这种方式创建数组 简单粗暴) var colors = ['red','color','yellow'];console.log(colors) //空 ...
- #《Essential C++》读书笔记# 第五章 面向对象编程风格
基础知识 继承机制定义了父子(parent/child)关系.父类(parent)定义了所有子类(children)共通的共有接口(public interface)和私有实现(private imp ...
- WindowsPE 第五章 导出表编程-1(枚举导出表)
导出表编程-1-枚举导出表 开始前先回忆一下导出表: 1.枚举dll函数的导出函数名字: 思路: (1)加载dll到内存里. (2)获取PE头,逐步找到可选头部. (3)然后找到里面的第一个结构(导出 ...
- 实践javascript美术馆的小案例,学习到的东西还是蛮多的,包括javascript编程中的预留退路、分离javascript、以及实现向后兼容等
javascript美术馆(改进2) 一.javascript编程过程中的好习惯 1.实现预留退路 js被禁掉,图片也可以显示出来,href属性带有图片路径 <script src=" ...
- [书籍翻译] 《JavaScript并发编程》第五章 使用Web Workers
本文是我翻译<JavaScript Concurrency>书籍的第五章 使用Web Workers,该书主要以Promises.Generator.Web workers等技术来讲解Ja ...
- JavaScript DOM编程艺术-学习笔记(第五章、第六章)
第五章: 1.题外话:首先大声疾呼,"js无罪",有罪的是滥用js的那些人.js的father 布兰登-艾克,当初为了应付工作,10天就赶出了这个js,事后还说人家js是c语言和s ...
- [书籍翻译] 《JavaScript并发编程》 第二章 JavaScript运行模型
本文是我翻译<JavaScript Concurrency>书籍的第二章 JavaScript运行模型,该书主要以Promises.Generator.Web workers等技术来讲解J ...
随机推荐
- bzoj2039: [2009国家集训队]employ人员雇佣(最小割)
传送门 膜一下大佬->这里 不难看出这是一个最小割的模型(然而我看不出来) 我们从源点向每一个点连边,容量为他能带来的总收益(也就是他能对其他所有经理产生的贡献) 然后从每一个点向汇点连边,容量 ...
- SP375 QTREE - Query on a tree
题意大意 给定\(n\)个点的树,边按输入顺序编号为\(1,2,...n-1\),要求作以下操作: CHANGE \(i\) \(t_i\) 将第\(i\)条边权值改为\(t_i\),QUERY \( ...
- windows下安装python包
1.windows下成功安装好python后,在安装目录的Scripts目录下有easy_install和pip工具 2.如果没有安装pip,进入命令行,切换到python的安装目录下的Scripts ...
- Scala_Load csv data to hive via spark2.1_via pass parameters_HiveAllType
prepare CSV data NT,col_SMALLINT,col_BIGINT,col_INT,col_FLOAT,col_DOUBLE,col_DECIMAL,col_TIMESTAMP,c ...
- jquery $.fn $.fx 的意思以及使用
$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效,下面简单为大家介绍下jquery $.fn $.fx到底是怎么一回事 $.fn是指jquery的命名空间,加 ...
- chapter09
import java.io.File import java.nio.file._ import scala.collection.mutable.ArrayBuffer/** * Created ...
- remote error: You can't push to git 解决办法
- asp.net mvc网站的发布与IIS配置
一.安装IIS (如果服务器上已经安装了就跳过) 控制面板——程序——程序功能——打开或关闭windows功能——勾选Inertnet信息服务下面所有选项——确定 二.获取发布文件(如果已经发不好就跳 ...
- ASP.NET 中Textbox只能输入数字,不能输入其他字符
解决办法如下: <asp:TextBox ID="txtpage" runat="server" Width="61px" ...
- Java学习笔记--关于面向对象的思考
1.不可改变的类生成对象以及变量的范围 2. 关键词this的使用 3.用类抽象的思想制作软件 4.通过关系模型建立类 5.使用面向对象的范例来设计程序,遵循类设计指导. 已经学习了:怎么定义类已经创 ...