2015阿里校招前端在线题目[通俗易懂]

2015阿里校招前端在线题目

大家好,又见面了,我是全栈君。

5.淘宝首页须要实现这样一个功能。对于页面上非taobao.com域名下的链接。在用户点击时,须要在链接处弹出提示框,提示用户此链接非淘宝域名下的链接。并给与用户选择是否继续訪问。假设用户确认继续訪问,则在新窗体打开链接。请写出对应的代码。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<a href="http://www.taobao.com">taobao.com</a>
		<a href="http://www.taobao.com">taobao.com</a>
		<a href="http://www.sina.com">www.sina.com</a>
		<script type="text/javascript">
		(function(){
			var hrefs = document.getElementsByTagName("a");
			for(var i = 0, len = hrefs.length; i<len; i++){
					var href = hrefs[i].getAttribute("href");
					hrefs[i].onclick = function(href){
						return function(){
							var reg = new RegExp("http://www.taobao.com");
							if(reg.exec(href)){
								return true;
							}else{
								return window.confirm(href + "非本地网站。是否继续?");
							}
						}
					}(href);
			}
		})();
		</script>
	</body>
</html>

还有一种方法,对事件进行处理。

这样做的优点是避免了对每个a标签进行逐个绑定。节省了时间开销。另外代码更简洁。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<a href="http://www.taobao.com">taobao.com</a>
		<a href="http://www.taobao.com">taobao.com</a>
		<a href="http://www.sina.com">www.sina.com</a>
		<script type="text/javascript">
		(function(){
			var b=document.body;
			var reg=new RegExp("http://www.taobao.com");
			function doClick(event){
				if(event.target.tagName=='A'){
					event.preventDefault();   //阻止a标签的默认行为即跳转
					var href = event.target.href;
					if(reg.exec(href)){
						location.href=href;
					}else{
						if(window.confirm(href + "非本地网站。是否继续?")){
							location.href=href;
						}
					}
				}
			}
			b.onclick=doClick;
		})();
		</script>
	</body>
</html>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116031.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月27日 上午7:00
下一篇 2022年1月27日 上午8:00


相关推荐

  • JAVA常见类(十二)Calendar类

    JAVA常见类(十二)Calendar类Calendar类Calendar:它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。一、构造方法protectedCalendar():由于修饰符是protected,所以无法直接创建该对象。需要通过别的途径生成该对象。二、成员方法Calendar类…

    2026年2月26日
    4
  • 方法区(Method Area)存储的静态变量[通俗易懂]

    方法区(Method Area)存储的静态变量[通俗易懂]1:方法区(MethodArea)存储的静态变量静态变量又称为类变量,类中被static修饰的成员变量都是静态变量(类变量)静态变量之所以又称为类变量,是因为静态变量和类关联在一起,随着类的加载而存在于方法区(而不是堆中)八种基本数据类型(byte、short、int、long、float、double、char、boolean)的静态变量会在方法区开辟空间,并将对应的值存储在方法方…

    2022年5月18日
    48
  • Ubuntu 18.04 清华更新源 Certificate verification failed

    Ubuntu 18.04 清华更新源 Certificate verification failed~#cat/etc/issueUbuntu18.04.5LTS\n\l#aptupdateIgn:1https://mirrors.tuna.tsinghua.edu.cn/ubuntubionicInReleaseIgn:2https://mirrors.tuna.tsinghua.edu.cn/ubuntubionic-updatesInReleaseIgn:3https://mirrors.tuna.tsinghua.edu.cn/ubuntubionic-

    2022年7月22日
    166
  • 负数字符串转数字

    负数字符串转数字在用 inta Integer parseInt str 转数字时报错 无法识别没找到是否有此类函数直接转换查询后通过下列语句可以实现 Stringst s next Stringstr null for inti 0 i

    2026年3月18日
    2
  • JointJS动态流程图

    JointJS动态流程图nbsp nbsp 最近公司有个导航项目需要做个流程图比较复杂的那种 作为一个前端小菜也是很蒙的 要求就两条一 动态加载流程图 二 动态连线 这两点要求也是难住了一阵呢 最后选择了 jointJS 选着原因官网 API 很详细 代码量比较少封装起来使用也很便捷 进阶文档基础略过 没接触过得可以去在官网先学习一下 废话不多少直接上硬菜 nbsp nbsp 我这块写了两个一个是节点型流程图和关系行流程图 源码在下一篇文章可以

    2026年3月18日
    2
  • centos安装python环境

    centos安装python环境centos安装python环境查看系统自带版本查看系统自带版本位置下面介绍安装Python3的方法下载python包解压安装包创建软链接升级pip测试python3由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到。查看系统自带版本输入Python命令,查看可以得知是Python2.7.5版本查看系统自带版本位置whichpython一般是位于/usr/bin/python目录下。下面介绍安装Python3的方法

    2022年6月29日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号