文档章节

window.open打开页面窗口大小调整及置于页面最前面

荆瑶
 荆瑶
发布于 2016/10/26 13:22
字数 491
阅读 431
收藏 0

1.window.open打开页面参数说明:

2.调整弹窗位于页面中间,并按比例打开弹窗,强制位于页面最前面

//name 弹窗名字
//width 弹窗宽度(比例)
//height 弹窗高度(比例)
var myWindow;
function openWin(url, name, width, height) {
    var w_percent = width ? width : 9;//如果参数未传,则取9
    var h_percent = height ? height : 8;
    var widths = (window.screen.availWidth) * w_percent / 10;
    var heights = (window.screen.availHeight) * h_percent / 10;
    var iLeft = (window.screen.availWidth - widths) / 2;
    var iTop = (window.screen.availHeight - heights) / 2;

//判断是否为IE
    var b_version=navigator.appVersion;
    var version=b_version.split(";");
    if(version[1]){
        var trim_Version=version[1].replace(/[ ]/g,"");
    }
    if(trim_Version == 'MSIE9.0' || trim_Version == 'MSIE10.0'|| trim_Version == 'WOW64' || trim_Version == 'MSIE7.0'){//IE浏览器,直接打开
        myWindow = window.open(url, name, 'scrollbars=yes,width=' + widths + ',height=' + heights + ',left=' + iLeft + ',top=' + iTop + '');
        myWindow.focus();
    }else{//非IE,判断窗口是否存在,若存在,则关闭当前窗口,重新打开
        if(myWindow){
            myWindow.close();
            myWindow = null;
        }
        myWindow = window.open(url, name, 'scrollbars=yes,width=' + widths + ',height=' + heights + ',left=' + iLeft + ',top=' + iTop + '');
    }

//弹窗名字重命名ss
    var title = name;
    setTimeout(function () {
        myWindow.document.title = title;
    }, 1000);
}
<a href="javascript:void(0)" onclick="javascript:openWin('url','name','8.5','7.5')">name</a>

代码说明:

(1)一般window.open方法打开弹窗,火狐下弹窗无法自动显示到页面最前面,用myWindow.focus()方法,可强制新开页面置于页面最前方。

(2)360极速模式下,此方法仍不能解决将页面置于最前方的问题,故加判断,如果页面已经打开,则将此页面关闭,参数置为空,重新打开此页面。即:if(myWindow){ myWindow.close() ; myWindow = null ;} myWindow = myWindow.open(url,name,....);

(3)用这种方式解决了360极速模式出现的问题,360兼容模式即ie下,又会出现第二次打开弹窗,弹窗被浏览器屏蔽的问题,所以,我选择判断浏览器模式,处理此兼容问题,即如果当前浏览器是IE,则直接打开页面,不需要判断myWindow是否存在的情况。

综上所述,就解决了用window.open打开窗口强制位于最前遇到的兼容问题。

© 著作权归作者所有

荆瑶
粉丝 2
博文 55
码字总数 21369
作品 0
海淀
程序员
私信 提问
window.location 与window.open的区别

window.open默认在新窗口中打开 加入target属性(_blank)后,360浏览器默认在新标签页中打开 window.open(url,"_blank"); 1.window.location是window对象的属性,而window.open是window对象...

单线程生物
2016/04/11
573
0
window.location 与window.open区别

1.window.location是window对象的属性,而window.open是window对象的方法 window.location是你对当前浏览器窗口的URL地址对象的参考! window.open是用来打开一个新窗口的函数! 2.window.o...

一枚Sir
2014/06/12
64
0
js 打开新窗口 修改 窗口大小

效果 只能设置通过open打开的窗口大小 从 Firefox 7 开始,不能改变浏览器窗口的大小了,要依据下面的规则: 1.不能设置那些不是通过 window.open 创建的窗口或 Tab 的大小。 2 .当一个窗口里...

阿豪boy
2018/07/07
31
0
ASP.NET关闭当前窗口同时打开一个新窗口

阅读: 37 评论: 0 作者: Derek 发表于 2009-11-11 22:15 原文链接 首先,在pageload里写入以下代码:Response.Write(""); 其次,在head里写下如下JS代码: 最后,在BODY里调用OPENWIN()方法: 这里...

yeahking
2010/03/18
471
0
用JS去掉IE窗口的标题栏、工具栏、导航栏等。

前言:经常上网的朋友可能会到过这样一些网站,一进入首页立刻会弹出一个窗口,或者按一个连接或按钮弹出,通常在这个窗口里会显示一些注意事项、版权信息 、警告、欢迎光顾之类的话或者作者想...

donny945
2014/03/31
614
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部