JS window.open()属性
一. Window 对象
Window 对象是 JavaScript 层级中的顶层对象。
Window 对象代表一个浏览器窗体或一个框架。
Window 对象会在 <body> 或 <frameset> 每次出现时被自己主动创建。
二.
open() 方法用于打开一个新的浏览器窗体或查找一个已命名的窗体。
三.
window.open(URL,name,features,replace)
參数 | 描写叙述 |
---|---|
URL | 一个可选的字符串,声明了要在新窗体中显示的文档的 URL。假设省略了这个參数,或者它的值是空字符串,那么新窗体就不会显示不论什么文档。 |
name | 一个可选的字符串,该字符串是一个由逗号分隔的特征列表,当中包含数字、字母和下划线,该字符声明了新窗体的名称。这个名称能够用作标记 <a> 和 <form> 的属性 target 的值。假设该參数指定了一个已经存在的窗体,那么 open() 方法就不再创建一个新窗体,而仅仅是返回对指定窗体的引用。在这样的情况下,features 将被忽略。 |
features | 一个可选的字符串,声明了新窗体要显示的标准浏览器的特征。假设省略该參数,新窗体将具有全部标准特征。在窗体特征这个表格中,我们对该字符串的格式进行了具体的说明。 |
replace
|
一个可选的布尔值。规定了装载到窗体的 URL 是在窗体的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持以下的值:
|
四.窗体特征(Window Features)
channelmode=yes|no|1|0 | 是否使用剧院模式显示窗体。默觉得 no。 |
directories=yes|no|1|0 | 是否加入文件夹button。默觉得 yes。 |
fullscreen=yes|no|1|0 | 是否使用全屏模式显示浏览器。默认是 no。处于全屏模式的窗体必须同一时候处于剧院模式。 |
height=pixels | 窗体文档显示区的高度。以像素计。 |
left=pixels | 窗体的 x 坐标。以像素计。 |
location=yes|no|1|0 | 是否显示地址字段。默认是 yes。 |
menubar=yes|no|1|0 | 是否显示菜单条。默认是 yes。 |
resizable=yes|no|1|0 | 窗体是否可调节尺寸。默认是 yes。 |
scrollbars=yes|no|1|0 | 是否显示滚动栏。默认是 yes。 |
status=yes|no|1|0 | 是否加入状态栏。默认是 yes。 |
titlebar=yes|no|1|0 | 是否显示标题栏。默认是 yes。 |
toolbar=yes|no|1|0 | 是否显示浏览器的工具栏。默认是 yes。 |
top=pixels | 窗体的 y 坐标。 |
width=pixels | 窗体的文档显示区的宽度。以像素计。 |
五.
注意:
window.open(URL,name,features,replace)
假设name使用名字已经存在,那么不会创建一个新的窗体,而是会返回对已经存在的窗体的引用。
否则,则创建一个新的窗体。
我就是没有注意这点,网页全屏时候,花了非常多时间。
六.详细业务功能
6.1 打开一个全屏的窗体
<script type="text/javascript">
window.open("http://google.com/",'新开googleWin',"fullscreen=1")
</script>
6.2 使本页面全屏
解决方式:先打开一个全屏的目标窗体,然后关闭本窗体。
代码:
<script type="text/javascript">
var url=document.location.href; //获得本窗体属性名
newWin=window.open(url,'','fullscreen=1,scrollbars=0');
window.opener=null;//出掉关闭时候的提示窗体
window.open('','_self'); //ie7
window.close();
</script>
注意:假设你在open方法中指定第二个參数,并为他赋予特定的值话,那么第二次使用上面方法,将无法创建新的窗体,由于系统默认的返回已经存在窗体的索引。
按ESC退出全屏
<script type="text/javascript">
// Esc退出全屏
function exitFullScreenMe()
{
var esc=window.event.keyCode;
if(esc==27) //推断是不是按的Esc键,27表示Esc键的keyCode.
{
var url=document.location.href;
win=window.open(url,'','fullscreen=0,directories=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1,titlebar=1,toolbar=1'); //让新打开的窗体全屏
window.opener=null;//出掉关闭时候的提示窗体
window.open('','_self');//ie7
window.close(); //先关闭老的窗体
}
}
document.onkeydown = exitFullScreenMe ; //当onkeydown(按键触发) 事件发生时调用hotkey函数
</script>
6.3同一时候弹出两个窗体
<script type="text/javascript">
window.open("http://google.com/",'新开googleWin1',"height=300, width=300, top=0, left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")
window.open("http://google.com/",'新开googleWin2',"height=300, width=300, top=0, left=400,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")
</script>
注意:(1)窗体的名字不能同样,但能够都为空;
(2)要注意两个窗体的布局,是否符合你的要求。
6.4
第一次进入页面才弹出窗体.cookie解决
首先,将例如以下代码增加主页面HTML的<HEAD>区:
<script>
function openwin(){
window.open("page.html","","width=200,height=200")
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function loadpopup(){
if (get_cookie('popped')==''){
openwin()
document.cookie="popped=yes"
}
}
</script>
然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句就可以。你能够试着刷新一下这个页面或又一次进 入该页面,窗体再也不会弹出了。
相关文章
- vue.js 计算属性与$watch的区别?
- Vue - 实现用 JS 调用自定义组件 / 类似 ElementUI 弹框组件(在 js 文件中通过 this.xxx 方式调用并显示自定义弹框模态框组件)
- js全局对象Math对象(数学运算) - 8种属性/20种方法与使用
- Js实现map和深拷贝map
- 设置js 按钮参数
- js sort方法根据数组中对象的某一个属性值进行排序
- 手动添加js脚本
- js 保留两位小数,Js四舍五入,JavaScript Math四舍五入
- Node JS is Platform, not a Framework---Node JS Platform Components
- JS教程之使用 P5.js 构建一个贪吃蛇游戏(教程含源码)
- JS事件属性总结【鼠标 / 键盘 / 表单】
- JS位运算
- [js高手之路] dom常用节点属性兼容性详解与应用
- arcgis api 3.x for js 入门开发系列二十二地图模态层(附源码下载)
- Js document.frmLogin.action = '/login.htm';的意义和form表单的target属性
- JS魔法堂:阻止元素被选中
- JS魔法堂:属性、特性,傻傻分不清楚
- JS window.open()属性
- JS学习第7天——移动端特效(触屏事件touch、classList属性、轮播图、click延时解决方案、常用开发插件和开发框架)
- viewer.js 显示图片名称和照片属性
- js 获取 对象 属性名称(转载)
- Vue.js系列之四计算属性和观察者
- js-原生Js汉语拼音首字母匹配城市名
- 13 Spring Boot Shiro使用JS-CSS-IMG
- Node.js stream模块