弹出窗口 代码

 更新时间:2016年9月20日 19:06  点击:1613

经常上网的朋友可能会到过这样一些网站,一进入首页立刻会弹出一个窗口,

或者按一个连接或按钮弹出,通常在这个窗口里会显示一些注意事项、版权信息

、警告、欢迎光顾之类的话或者作者想要特别提示的信息。其实制作这样的页面

效果非常的容易,只要往该页面的HTML里加入几段Javascript代码即可实现。下

面俺就带您剖析它的奥秘。
【1、最基本的弹出窗口代码】
其实代码非常简单:
<SCRIPT LANGUAGE="javascript">
<!--
window.open ('page.html')
-->
</SCRIPT>
因为着是一段javascripts代码,所以它们应该放在<SCRIPT LANGUAGE="javascr

ipt">标签和</script>之间。<!-- 和 -->是对一些版本低的浏览器起作用,在这

些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。
window.open ('page.html') 用于控制弹出新的窗口page.html,如果page.html

不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)和相对路径(..

/)均可。
用单引号和双引号都可以,只是不要混用。
这一段代码可以加入HTML的任意位置,<head>和</head>之间可以,<body>间</b

ody>也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往

前放。

【2、经过设置后的弹出窗口】
下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。

我们来定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应该页面的具体

情况。

<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=n

o, status=no')
//写成一行
-->
</SCRIPT>

参数解释:
<SCRIPT LANGUAGE="javascript"> js脚本开始;
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> js脚本结束

【3、用函数控制弹出窗口】
下面是一个完整的代码。
<html>
<head>
<script LANGUAGE="JavaScript">
<!--
function openwin() {
window.open ("page.html", "newwindow", "height=100, width=400, toolbar

=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no")


//写成一行
}
//-->
</script>
</head>
<body onload="openwin()">
...任意的页面内容...
</body>
</html>

这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有

任何用途。
怎么调用呢?
方法一:<body onload="openwin()"> 浏览器读页面时弹出窗口;
方法二:<body onunload="openwin()"> 浏览器离开页面时弹出窗口;
方法三:用一个连接调用:
<a href="#" onclick="openwin()">打开一个窗口</a>
注意:使用的“#”是虚连接。
方法四:用一个按钮调用:
<input type="button" onclick="openwin()" value="打开窗口">

【4、同时弹出2个窗口】
对源代码稍微改动一下:
<script LANGUAGE="JavaScript">
<!--
function openwin() {
window.open ("page.html", "newwindow", "height=100, width=100, top=0,

left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n

o, status=no")
//写成一行
window.open ("page2.html", "newwindow2", "height=100, width=100, top=1

00, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, loca

tion=no, status=no")
//写成一行
}
//-->
</script>
为避免弹出的2个窗口覆盖,用top和left控制一下弹出的位置不要相互覆盖即可

。最后用上面说过的四种方法调用即可。
注意:2个窗口的name(newwindows和newwindow2)不要相同,或者干脆全部为空。

OK?

【5、主窗口打开文件1.htm,同时弹出小窗口page.html】

如下代码加入主窗口<head>区:

<script language="javascript">
<!--
function openwin() {
window.open("page.html","","width=200,height=200")
}
//-->
</script>
加入<body>区:
<a href="1.htm" onclick="openwin()">open</a>即可。

【6、弹出的窗口之定时关闭控制】

下面我们再对弹出的窗口进行一些控制,效果就更好了。如果我们再将一小段

代码加入弹出的页面(注意是加入到page.html的HTML中,可不是主页面中,否则

...),让它10秒后自动关闭是不是更酷了?
首先,将如下代码加入page.html文件的<head>区:
<script language="JavaScript">

function closeit() {

setTimeout("self.close()",10000) //毫秒

}

</script>
然后,再用<body onload="closeit()"> 这一句话代替page.html中原有的<BO

DY>这一句就可以了。(这一句话千万不要忘记写啊!这一句的作用是调用关闭窗

口的代码,10秒钟后就自行关闭该窗口。)

【7、在弹出窗口中加上一个关闭按钮】
<FORM>
<INPUT TYPE='BUTTON' VALUE='关闭' onClick='window.close()'>
</FORM>
呵呵,现在更加完美了!

【8、内包含的弹出窗口-一个页面两个窗口】

上面的例子都包含两个窗口,一个是主窗口,另一个是弹出的小窗口。
通过下面的例子,你可以在一个页面内完成上面的效果。

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
function openwin()
{
OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no

,scrollbars="+scroll+",menubar=no");
//写成一行
OpenWindow.document.write("<TITLE>例子</TITLE>")
OpenWindow.document.write("<BODY BGCOLOR=#ffffff>")
OpenWindow.document.write("<h1>Hello!</h1>")
OpenWindow.document.write("New window opened!")
OpenWindow.document.write("</BODY>")
OpenWindow.document.write("</HTML>")
OpenWindow.document.close()
}
</SCRIPT>
</head>
<body>
<a href="#" onclick="openwin()">打开一个窗口</a>
<input type="button" onclick="openwin()" value="打开窗口">
</body>
</html>

看看 OpenWindow.document.write()里面的代码不就是标准的HTML吗?只要按照

格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用

OpenWindow.document.close()结束啊。


【9、终极应用--弹出的窗口之Cookie控制】

回想一下,上面的弹出窗口虽然酷,但是有一点小毛病(沉浸在喜悦之中,一定

没有发现吧?)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),

那么每次刷新这个页面,窗口都会弹出一次,是不是非常烦人?:-(
有解决的办法吗?Yes! ;-) Follow me.
我们使用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>这一句即可。你可以试着刷新一下这个页面或重新进

入该页面,窗口再也不会弹出了。真正的Pop-Only-Once!

写到这里弹出窗口的制作和应用技巧基本上算是完成了

关于相对于绝对定位的问题经过一阵研究与借鉴他人经验,得出入下结论:
一. 常出现的问题

当你的表格选居中的时候又插入了层(插入层方法1:object->draw layer)的时候(800*600),分辨率一旦变大、窗口最大化之后,层就错位了,而如果使用菜单(插入层方法2:Insert->Layer)插入层的时候,这个层就会与它的上级元素相对定位,但是一旦在Dreamweaver中用移动工具动了它,它就会马上变成绝对定位,不会再与上级元素相对定位了。

二. 思想:

通过object面板置入的层是绝对定位的层,这个绝对定位指的是层的左上角与浏览器窗口内部的左部、顶部距离,代码中的写法是left与top。
通过菜单置入的层是相对定位的层,这个相对定位指的是层与它的上级元素的距离(它的上级元素的左上角),由于这个div中不再有left与top的属性,所以浏览器把它的位置定为与它的上级元素相同

(总结一:只要去掉层的left与top属性就可以相对定位!)


三. 深入思想:

现在层已经相对定位了,可是只是这样还完全不能满足要求,因为很多时候不能把表格设定得那样准确,否则会把表格搞得很麻烦,把代码搞得很大很大。
如果在上面说做出的相对定位的层的基础上再做一个层对它相对定位,不就解决问题了吗?
这就涉及到了父层与子层的问题(由于它是层的基础,在书与网上教程中就可以看到,这里不再阐述),父层相对于某点定位,而子层相对于父层定位,就可以达到层的相对定位这个目标了

四. 具体制作(只介绍最简单的方法,对代码熟的朋友可以手敲的):

先在页面内插入表格(可以设居中,表格就居中了,否则几乎无意义),鼠标在某单元格内点一下,让光标在此闪动,然后通过菜单插入一个层,这个层就相对与这个单元格定位了。插入一个层之后,不要动它,而且也永远不要动,但是可以更改它的大小,比如把它的高与宽都改成"0",让它不再影响你对其他内容的编辑,否则,这个层的left与top属性出现之后就成了绝对定位了,变成绝对定位后你可以把它的left与top属性去掉,就恢复成相对定位了。变成"0"之后,有时子层会看不见,可以按[f11]键点它恢复编辑。
现在光标在这个层内闪动,再通过菜单插入子层,这时子层与父层重叠,你可以随意移动它,不管怎么动,它都是相对与父层定位。
好了,一个相对定位的层(子层)做好了,你可以在里面随意添加内容了,也可以改变它的尺寸、位置、背景等所有属性,但是不要动left与top属性,因为它是相对于父层的左上角定位的。

下面给出父层与子层在Dreamweaver中的属性面板:

父层:


子层:


五. 技巧:

先插入一个表格,在其中一个单元格中插入父层,可以把它定得小一点,比如说20象素宽、10象素高,这样它就不会盖住下面的链接,也不影响子层的相对定位。
如果要用778象素宽定义表格,可以把父层插入到表格的第一行第一个单元格中,这样就可以在所有层制作完后插入父层了!对代码熟的朋友就可以手敲父层而不必再去调整子层的位置了。
 

如何文字不会撑大表格, 表格撑大   撑破表格   css 撑破表格   防止表格被撑破 ,这要用到css里面的word-wrap: break-word

下面来看一个简单的例子吧.

<table width="100%" border="1">
<tr>
<td style="width: 200px; word-wrap: break-word">

www.111cn.netwww.111cn.netwww.111cn.netwww.111cn.netwww.111cn.netwww.111cn.netwww.111cn.netwww.111cn.net
</td>

</tr></table>

<Script Language=JavaScript RunAt=Server>
//===============================================
// 单个过滤
// 输入参数:
// s_Content : 要转换的数据字符串
// s_Filter : 要过滤掉的单个格式
//===============================================
function eWebEditor_DecodeFilter(html, filter){
 switch(filter.toUpperCase()){
 case "SCRIPT":  // 去除所有客户端脚本javascipt,vbscript,jscript,js,vbs,event,...
  html = eWebEditor_execRE("</?script[^>]*>", "", html);
  html = eWebEditor_execRE("(javascript|jscript|vbscript|vbs):", "$1:", html);
  html = eWebEditor_execRE("on(mouse|exit|error|click|key)", "<I>on$1</I>", html);
  html = eWebEditor_execRE("&#", "<I>&#</I>", html);
  break;
 case "TABLE":  // 去除表格<table><tr><td><th>
  html = eWebEditor_execRE("</?table[^>]*>", "", html);
  html = eWebEditor_execRE("</?tr[^>]*>", "", html);
  html = eWebEditor_execRE("</?th[^>]*>", "", html);
  html = eWebEditor_execRE("</?td[^>]*>", "", html);
  break;
 case "CLASS":  // 去除样式类class=""
  html = eWebEditor_execRE("(<[^>]+) class=[^ |^>]*([^>]*>)", "$1 $2", html) ;
  break;
 case "STYLE":  // 去除样式style=""
  html = eWebEditor_execRE("(<[^>]+) style=\"[^\"]*\"([^>]*>)", "$1 $2", html);
  break;
 case "XML":   // 去除XML<?xml>
  html = eWebEditor_execRE("<\\?xml[^>]*>", "", html);
  break;
 case "NAMESPACE": // 去除命名空间<o:p></o:p>
  html = eWebEditor_execRE("<\/?[a-z]+:[^>]*>", "", html);
  break;
 case "FONT":  // 去除字体<font></font>
  html = eWebEditor_execRE("</?font[^>]*>", "", html);
  break;
 case "MARQUEE":  // 去除字幕<marquee></marquee>
  html = eWebEditor_execRE("</?marquee[^>]*>", "", html);
  break;
 case "OBJECT":  // 去除对象<object><param><embed></object>
  html = eWebEditor_execRE("</?object[^>]*>", "", html);
  html = eWebEditor_execRE("</?param[^>]*>", "", html);
  html = eWebEditor_execRE("</?embed[^>]*>", "", html);
  break;
 default:
 }
 return html;
}

// ============================================
// 执行正则表达式替换
// ============================================
function eWebEditor_execRE(re, rp, content) {
 oReg = new RegExp(re, "ig");
 r = content.replace(oReg, rp);
 return r;
}

</Script>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><!--文档类型-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><!--设置网页的文件编码-->
<meta http-equiv="expires" content="2007/10/18 18:00:00"><!--脱机浏览的过期时间-->
<meta http-equiv="pragma" content="no-cache"><!--禁止网页从缓存中读取-->
<meta http-equiv="Refresh" content="5;http://"><!--网页重新定向-->
<meta http-equiv="set-cookie" content="2007/10/18 18:00:00"><!--设置网页的cookie过期时间-->
<meta http-equiv="Window-target" content="_top"><!--设置网页中链接的目标窗口-->
<meta http-equiv="Page-Enter" content="revealTrans(duration=1000000,transition=50000000)"><!--设置网页的打开效果-->
<meta http-equiv="Page-Exit" content="revealTrans(duration=1000000,transition=50000000)"><!--设置网页的关闭效果-->
<meta name="keywords" content="overmind,zerg,protoss"><!--设置网页的关键字,搜索的时候优先!!!重要!!! 该数据被搜索引擎编入索引-->
<meta name="description" content="哈哈哈哈哈"><!--插入描述 搜索时被搜索引擎编入索引-->
<title>标题一定不要少啊!对SEO很有用的!</title>
</head>
<body>
aaa
</body>
</html>

[!--infotagslink--]

相关文章

  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07
  • ecshop商品无限级分类代码

    ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
  • 几种延迟加载JS代码的方法加快网页的访问速度

    本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
  • vue项目,代码提交至码云,iconfont的用法说明

    这篇文章主要介绍了vue项目,代码提交至码云,iconfont的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-30
  • IDEA插件之快速删除Java代码中的注释

    这篇文章主要介绍了IDEA插件之快速删除Java代码中的注释,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-18
  • C#超实用代码段合集

    这篇文章主要介绍了C#超实用代码段合集,涉及C#针对图标、数学运算、拼音、日期、时间及文件夹等的相关操作技巧,需要的朋友可以参考下...2020-06-25