window.open 弹出新窗口的命令;
'page.html' 弹出窗口的文件名;
'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;
height=100 窗口高度;
width=400 窗口宽度;
top=0 窗口距离屏幕上方的象素值;
left=0 窗口距离屏幕左侧的象素值;
toolbar=no 是否显示工具栏,yes为显示;
menubar,scrollbars 表示菜单栏和滚动栏。
resizable=no 是否允许改变窗口大小,yes为允许;
location=no 是否显示地址栏,yes为允许;
status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
基本变化
代码如下 | 复制代码 |
<SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no') //写成一行 --> </SCRIPT> |
弹启一个全屏窗口
加入fullscreen
代码如下 | 复制代码 |
<SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.html', 'newwindow', 'fullscreen') //全屏了,自然其他条件就都失效了 --> </SCRIPT> |
可访问弹出菜单/窗口
1. window.open 新建的浏览器窗口:focus 到新建的窗口即可。
// 引用自:QuickMode - popups
代码如下 | 复制代码 |
function popitup(url) { newwindow=window.open(url,'name','height=200,width=150'); if (window.focus) { // focus 到新建窗口 newwindow.focus(); } // 阻止触发器的默认行为 return false; } |
<iframe /> 创建的窗口:调试了好久,IE8/9 需要等 iframe onload 成功后 setTimeout 来 hack;firefox 不能使用 ifrcontentWindow.focus(),只能用 iframe.focus()。综合起来需要这样的代码:
代码如下 | 复制代码 |
// for all except firefox setTimeout(function(){ f.contentWindow.focus(); }, 50); // hack for firefox |
刷新之后就不再弹出窗口
我们使用cookie来控制一下就可以了。
首先,将如下代码加入主页面HTML的<HEAD>区:
代码如下 | 复制代码 |
<script> function openwin(){ window.open("page.html","","width=200,200") } function get_cookie(Name) { var search = Name + "=" var returnvalue = ""; if (documents.cookie.length > 0) { offset = documents.cookie.indexOf(search) if (offset != -1) { offset += search.length end = documents.cookie.indexOf(";", offset); if (end == -1) end = documents.cookie.length; returnvalue=unescape(documents.cookie.substring(offset, end)) } } return returnvalue; } function loadpopup(){ if (get_cookie('popped')==''){ openwin() documents.cookie="popped=yes" } } </script> |
然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!) 替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进入该页面,窗口再也不会弹出了。