JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法


Posted in Javascript onSeptember 21, 2017

本文实例讲述了JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法。分享给大家供大家参考,具体如下:

在一些不正规的网站,尤其是那些挂满广告的下载站,经常在你点击的下载链接之前,无论你点击网页的任何一处都会弹出新窗口。

这样的效果,可以轻松用JavaScript做到,还可以专门指定点击某一区域的Div,才触发打开新窗口的事件。

比如下图的效果:

JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法

在原网页中,指定一个Div,无论用户点击这个Div的任意区域,都会打开新窗口,而点击其它地方则不会。

在新窗口的地址栏不可以编辑,不能被调整大小,提供一个“关闭”按钮,关闭该窗口。

原网页的HTML布局如下,

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Untitled Document</title>
  </head>
  <body>
    <div class="testClass" style="height:100px;border:1px solid #cccccc">点击此任意一处打开广告</div>
  </body>
</html>

没什么好说的,就一个class为testClass的Div。

关键是以下脚本。

<script type="text/javascript">
  document.onclick = function(e){//设置整个网页的单击事件
    e = e || window.event;//为了兼容这样写。
    var target = e.target || e.srcElement;//用来点击的对象。为了兼容这样写。
    if (target.className == "testClass"){//如果点击的对象,class为testClass,那么打开新窗口。
      var OpenWindow=window.open("","newwindow","height=100","width=400","top=100","left=0","toolbar=false","menubar=false","scrollbars=false","resizable=false","location=false","status=false");
      //在新窗口中写入如下的HTML代码。
      OpenWindow.document.write("广告<br/>");
      //在Javascript中,利用window.close()可以关闭当前窗口,但不能关闭当前标签页,不过由于这个窗口是我们自己新生成的,因此对于所有浏览器有效
      OpenWindow.document.write("<button onclick='javascript:window.close()'>关闭!</button>");
    }
  }
</script>

从以上的脚本可以看到window.open()这个方法参数很长。

其中:

第一个参数为空的意思,则意为新窗口的链接不是已有的网页,新窗口的内容是通过以下的两行Javascript生成的。如果要求新窗口的内容是已有的网页,则填写相应的url。

之后的参数是如下的意思,但只是对IE有效。

newwindow:弹出窗口的名字(不是文件名),非必须,可用空''代替。
height=100:新窗口高度。
width=400:新窗口宽度。
top=0:新窗口距离当前窗口上方的像素值。
left=0:窗口距离当前窗口左侧的像素值。
toolbar=false:是否显示工具栏,menubar,scrollbars表示菜单栏和滚动栏。
resizable=false:是否允许改变窗口大小
location=false:是否启用新窗口地址栏
status=false:是否显示状态栏。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
文本链接逐个出现的js脚本
Dec 12 Javascript
node.js实现BigPipe详解
Dec 05 Javascript
jQuery中:input选择器用法实例
Jan 03 Javascript
jQuery中on()方法用法实例
Jan 19 Javascript
js生成验证码并直接在前端判断
May 15 Javascript
js实现倒计时及时间对象
Nov 15 Javascript
vue父组件向子组件动态传值的两种方法
Nov 11 Javascript
vue项目实战总结篇
Feb 11 Javascript
在Vue-cli里应用Vuex的state和mutations方法
Sep 16 Javascript
JS实现炫酷雪花飘落效果
Aug 19 Javascript
js实现搜索提示框效果
Sep 05 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
Nov 07 Javascript
shiro授权的实现原理
Sep 21 #Javascript
AngularJS 的$timeout服务示例代码
Sep 21 #Javascript
JS路由跳转的简单实现代码
Sep 21 #Javascript
JS实现的简单标签点击切换功能示例
Sep 21 #Javascript
使用JavaScript实现一个小程序之99乘法表
Sep 21 #Javascript
React-Native左右联动List的示例代码
Sep 21 #Javascript
angularjs实现简单的购物车功能
Sep 21 #Javascript
You might like
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
实例介绍PHP删除数组中的重复元素
2019/03/03 PHP
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
Javascript学习指南
2014/12/01 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
python提取字典key列表的方法
2015/07/11 Python
Flask框架配置与调试操作示例
2018/07/23 Python
pandas计数 value_counts()的使用
2019/06/24 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
C#面试常见问题
2013/02/25 面试题
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
护理专业毕业生自我鉴定
2013/10/08 职场文书
生物科学专业个人求职信范文
2013/12/05 职场文书
打架检讨书100字
2014/01/08 职场文书
党章学习思想汇报
2014/01/14 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
垂直极限观后感
2015/06/08 职场文书
宾馆安全管理制度
2015/08/06 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers