经常上网的朋友可能到过这样一些网站,一进入首页立刻会弹出
一个窗口,或者按一个链接或按钮弹出,通常在这个窗口里会显示
一些注意事项、版权信息、警告、欢迎光顾之类的话或者作者想要
特别提示的信息。其实制作这样的页面非常容易,只要往该页面的
HTML里加入几段javascript代码即可实现。下面我就带你剖析它的奥秘。
1.最基本的弹出窗口代码
引用内容
2.规定大小的窗口代码
引用内容
window.open (’http://www.jsust/’,’newwindow’,’height=100,
width=400,top=0,left=0,toolbar=no,menubar=no,
scrollbars=no,resizable=no,
location=no,status=no’)
//写成一行
-->
参数解释:
window.open 弹出新窗口的命令;
page.html 弹出新窗口的文件名;
newwindow 弹出窗口的名字(不是文件名),可用空 ″代替;
height=100 窗口高度;
top=0 窗口距离屏幕上方的像素值;
left=0 窗口距离屏幕左侧的像素值;
toolbar=no 是否显示工具栏,yes为显示;
menubar,scrollbars 表示菜单栏和滚动栏;
resizable=no 是否允许改变窗口大小,yes为允许;
location=no 是否显示地址栏,yes为允许;
status=no 是否显示状态栏内的信息(通常是文件已经打开),
yes为允许;
js脚本结束。
3.用函数控制弹出窗口
引用内容
...任意的页面内容...
这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。怎么调用呢?
方法一:
浏览器读页面时弹出窗口;方法二:
浏览器离开页面时弹出窗口;方法三:用一个连接调用:打开一个窗口
注意:使用的"#"是虚连接。
方法四:用一个按钮调用:
这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。怎么调用呢?
方法一:
浏览器读页面时弹出窗口;方法二:
浏览器离开页面时弹出窗口;方法三:用一个连接调用:打开一个窗口
注意:使用的"#"是虚连接。
方法四:用一个按钮调用:
4.主窗口打开文件1.htm,同时弹出小窗口page.html
将如下代码加入主窗口
区引用内容
加入
区引用内容
open
5.弹出的窗口之定时关闭控制
引用内容
6.内包含的弹出窗口——一个页面两个窗口
上面的例子都包含两个窗口,一个是主窗口,另一个是弹出的小窗口。
通过下面的例子,你可以在一个页面内完成上面的效果。
引用内容
function openwin()
{
OpenWindow=window.open("","newwin","height=250,
width=250,toolbar=no,scrollbars="+scroll+",menubar=no";);
//写成一行
OpenWindow.document.write("
例子" ;)OpenWindow.document.write("
" ;)OpenWindow.document.write("
Hello!
" ;)OpenWindow.document.write("New window opened!" ;)
OpenWindow.document.write("" ;)
OpenWindow.document.write("" ;)
OpenWindow.document.close()
}
打开一个窗口
看看OpenWindow.document.write()里面的代码不就是标准的
HTML吗?只要按照格式写更多的行即可。千万注意多一个标签
或少一个标签都会出现错误。
记住用OpenWindow.document.close()结束啊。
7.终极应用——弹出窗口的Cookie控制
回想一下,上面的弹出窗口虽然酷,但是有一点小毛病(你沉
浸在喜悦之中,一定没有发现吧?)比如你将上面的脚本放在
一个需要频繁经过的页面里(例如首页),那么每次刷新这个
页面,窗口都会弹出一次,是不是非常烦人?有解决的办法吗?
Yes!Follow me。我们使用Cookie来控制一下就可以了。
首先,将如下代码加入主页面HTML的
区:引用内容
function openwin(){
window.open("page.html","","width=200,height=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"
}
}
然后,用
(注意不是openwin而是loadpop啊)替换主页面中原有的
这一句即可。你可以试着刷新一下这个页面或重新进入该页面,窗口再也不
会弹出了。真正的Pop-Only-Once!
写到这里,弹出窗口的制作和应用技巧基本上算是讲完了,
希望对正在制作网页的朋友有所帮助我就非常欣慰了。
需要注意的是,JS脚本中的大小写最好前后保持一致。
没有菜单、工具栏、地址栏的弹出窗口:
引用内容
还有几个基本的代码
1.弹启一个全屏窗口
引用内容
www.jsust
2.弹启一个带有收藏链接工具栏的窗口
引用内容
<html>
<body οnlοad="window.open(’http://www.jsust/,’example03’,’
width=400,height=300,direct ories’);">
<b>www.jsust</b>
</body>
</html>
3弹出一个被F11化后的窗口
引用内容
<html>
<body οnlοad="window.open(’ http://www.jsust’,’example02’,’channelmode’);">
<b>www.jsust</b>
</body>
</html>
两个强制弹出代码
/**
* 用本程序弹出的窗口将不会被广告拦截软件拦截,但有一个缺点:
你无法象对window.open弹出的窗口那样对外观进行定制。
* 你当然也可以在使用前实例化一个ForceWindow对象:
* var myWindow = new ForceWindow();
* 这样来使用:
* myWindow.pop("URL");
* 本程序在 IE 5+、Firefox 1.0、Mozilla 1.7.5、Netscape 7.2、
Opera 7.23 下测试正常,但目前没有“冲破”Firefox的拦截。
*/
将下面的代码保存为一个.JS文件
程序代码
/**
* 定义ForceWindow类构造函数
* 无参数
* 无返回值
*/
function ForceWindow ()
{
if (!(this.isMsie = (/MSIE/).test(navigator.appVersion)))
{
this.f = document.createElement("FORM");
this.f.target = "_blank";
this.f.method = "post";
document.documentElement.insertBefore(this.f, document.documentElement.childNodes[0]);
}
}
/**
* 定义pop方法
* 参数sUrl:字符串,要打开窗口的URL。
* 无返回值
*/
ForceWindow.prototype.pop = function (sUrl)
{
if (this.isMsie)
{
var dialogConent = "about:";
dialogConent += "iecn";
dialogConent += "
dialogConent += "document.getElementById(’iecn’)
.click();window.close();";
window.showModalDialog(dialogConent, "", "width:1px;height:1px;left:0px;top:0px;");
}
else
{
this.f.action = sUrl;
this.f.submit();
}
}
/**
* 实例化一个ForceWindow对象并做为window对象的一个子对象以方便调用
* 定义后可以这样来使用:window.force.pop("URL");
*/
window.force = new ForceWindow();
[head][/head]中加
程序代码
window.onload = function ()
{
window.force.pop("http://www.jsust");
}
[body][/body]中加
程序代码
另一个简单点
程序代码
for(i=0;i<1;i++){
document.write("
");eval("document.form"+i+".submit();");
}
--------------------------------------------------------------
增加——延迟 N分钟内同一IP弹出一次 强制弹出
参数解释:
设置时间:Then.setTime(Then.getTime() + 1*60*60*1000)
mylove/ttan.htm(过渡网页)
ttan.htm中的 http://弹出网页/ 是要弹出的网页
scroll:1(滚动条)
status:1(状态栏)
help:1(帮助按钮)
toolbar=1(工具栏)
resizable:1(是否可以用鼠标拖动改变大小)
dialogWidth:800px(宽度)
dialogHeight:600px(高度)
3000(延迟弹出的时间,单位:毫秒。1秒=1000毫秒)
代码如下:
function Get(){
var Then = new Date()
Then.setTime(Then.getTime() + 1*60*60*1000)
var cookieString = new String(document.cookie)
var cookieHeader = "Cookie1="
var beginPosition = cookieString.indexOf(cookieHeader)
if (beginPosition != -1){
} else
{ document.cookie = "Cookie1=POPWIN;expires="+ Then.toGMTString()
focusid=setTimeout("focus();window.showModelessDialog(’mylove/ttan.htm’,’’,’scroll:0;status:0;help:0;resizable:0;dialogWidth:0px;dialogHeight:0px’)",3000)
window.focus();
}
}Get();
--------------
ttan.htm的内容
--------------
更多推荐
html网页自动提示框代码,多种网页弹出窗口代码
发布评论