javascript弹出窗口,javascript弹出窗口万能代码

javascript如何实现弹出浮动窗口

html

创新互联建站是一家集网站建设,昌江黎族企业网站建设,昌江黎族品牌网站建设,网站定制,昌江黎族网站建设报价,网络营销,网络优化,昌江黎族网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

head

titleJs弹出浮动窗口,支持鼠标拖动和关闭/title

meta http-equiv="Content-Type" content="text/html; charset=utf-8" /

script type="text/javascript"

/**

关于一些参数说明:

*bodycontent:要在窗口显示的内容,dom对象

*title:窗口标题,字符串类型

*removeable:窗口能否拖动,布尔类型

*注意:内容窗体的高度是height-30px,请计算好你要显示的内容的高度和宽度。弹出窗的id为"223238909",所以你的页面不要再取值为"223238909"的id了,以防js执行出错*/

function createdialog(width,height,bodycontent,title,removeable){

if(document.getElementById("www_phpstudy_net")==null){

/*创建窗口的组成元素*/

var dialog = document.createElement("div");

var dialogtitlebar= document.createElement("div");

var dialogbody = document.createElement("div");

var dialogtitleimg = document.createElement("span");

var dialogtitle = document.createElement("span");

var dialogclose = document.createElement("span");

var closeaction = document.createElement("button");

/*为窗口设置一个id,id如此怪异是为了尽量避免与其他用户取的id相同而出错*/

dialog.id = "223238909";

/*组装对话框标题栏,按从里到外的顺序组装*/

dialogtitle.innerHTML = title;

dialogtitlebar.appendChild(dialogtitleimg);

dialogtitlebar.appendChild(dialogtitle);

dialogtitlebar.appendChild(dialogclose);

dialogclose.appendChild(closeaction);

/*组装对话框主体内容*/

if(bodycontent!=null){

bodycontent.style.display = "block";

dialogbody.appendChild(bodycontent);

}

/*组装成完整的对话框*/

dialog.appendChild(dialogtitlebar);

dialog.appendChild(dialogbody);

/*设置窗口组成元素的样式*/

var templeft,temptop,tempheight//窗口的位置(将窗口放在页面中间的辅助变量)

var dialogcssText,dialogbodycssText;//拼出dialog和dialogbody的样式字符串

templeft = (document.body.clientWidth-width)/2;

temptop = (document.body.clientHeight-height)/2;

tempheight= height-30;

dialogcssText= "position:absolute;background:#65c294;padding:1px;border:4px;top:"+temptop+"px;left:"+templeft+"px;height:"+height+"px;width:"+width+"px;";

dialogbodycssText = "width:100%;background:#ffffff;"+"height:" + tempheight + "px;";

dialog.style.cssText = dialogcssText;

dialogtitlebar.style.cssText = "height:30px;width:100%;background:url(images/titlebar.png) repeat;cursor:move;";

dialogbody.style.cssText  = dialogbodycssText;

dialogtitleimg.style.cssText = "float:left;height:20px;width:20px;background:url(images/40.gif);"+"display:block;margin:4px;line-height:20px;";

dialogtitle.style.cssText = "font-size:16px;float:left;display:block;margin:4px;line-height:20px;";

dialogclose.style.cssText  = "float:right;display:block;margin:4px;line-height:20px;";

closeaction.style.cssText = "height:20px;width:24px;border-width:1px;"+"background-image:url(images/close.png);cursor:pointer;";

/*为窗口元素注册事件*/

var dialogleft = parseInt(dialog.style.left);

var dialogtop = parseInt(dialog.style.top);

var ismousedown = false;//标志鼠标是否按下

/*关闭按钮的事件*/       

closeaction.onclick = function(){

dialog.parentNode.removeChild(dialog);

}

/*实现窗口的移动,这段代码很典型,网上很多类似的代码*/

if(removeable == true){

var ismousedown = false;

var dialogleft,dialogtop;

var downX,downY;

dialogleft = parseInt(dialog.style.left);

dialogtop = parseInt(dialog.style.top);

dialogtitlebar.onmousedown = function(e){

ismousedown = true;

downX = e.clientX;

downY = e.clientY;

}

document.onmousemove = function(e){

if(ismousedown){

dialog.style.top = e.clientY - downY + dialogtop + "px";

dialog.style.left = e.clientX - downX + dialogleft + "px";

}

}

/*松开鼠标时要重新计算当前窗口的位置*/

document.onmouseup = function(){

dialogleft = parseInt(dialog.style.left);

dialogtop = parseInt(dialog.style.top);

ismousedown = false;

}

}

return dialog; 

}//end if(if的结束)

}

/script

style

table{background:#b2d235;}

button{font-size:12px;height:23;background:#ece9d8;border-width:1;}

#linkurl,#linkname,#savelink{width:100px;}

/style

/head

body

!-- 显示窗口的地方 --

div id="here"/diva id="clickhere" href="#"点击生成窗口/a

!-- 要嵌入到窗口的内容 --

div id="login" style="display:none;"

form action="#" method="post" onSubmit="return false;"

table width="400" height="95"

tr

td width="78"链接文字/td

td width="168"input name="link.name" type="text"//td

td width="138" id="linktext"/td

/tr

tr

td链接地址/td

tdinput name="link.url" type="text"//td

td id="linkurl"/td

/tr

tr

td/td

tdbutton type="submit" style="float:right;"添加/button/td

td id="savelink"/td

/tr

/table

/form

/div

script type="text/javascript"

var here = document.getElementById("here");

var login = document.getElementById("login");

var clickhere = document.getElementById("clickhere");

clickhere.onclick = function(){

here.appendChild(createdialog(400,95+30,login,"欢迎光临phpstudy",true));

}

/script

/body

/html

JavaScript如何判断一个弹出窗口是否关闭

你指的弹出窗口是指alert这样的js自带的弹窗,

还是只自定义浮于其他组件上的弹窗?

系统自带的,确认框也好,输入框也好,都是有阻塞的,

因为js是单线程语言,所以弹窗弹出后,整个页面都会阻塞,

你的下一步操作可以放在弹窗之后,因为只有完成了弹窗的关闭,之后的代码块才会执行,

也就是说在此之后默认就是弹窗关闭了,对于有返回值的也可以用返回值判断。

其次就是自定义的弹窗,一般就是div一个遮罩层和一个业务层,

使用绝对布局加z-index就可以,这种要判断弹窗是否关闭一般来说有两种,

一是生成型弹窗,用js生成,平时不存在与html中,用寻找对应id的组件是否存在的方式就可以判断是否处于关闭状态,

二是隐藏型弹窗,给一个display:none的属性,要弹出时就将属性更改为block之类,一般这种就是直接比较这个div的样式中display是否等于none就可以了。

js弹出窗口的命令

1、window.open(pageURL,name,parameters)

pageURL 为弹出窗口路径;

name 为弹出窗口名称,也可以是系统自带的比如:_self, _blank,_top,_parent ... ;

parameters 为窗口参数(各参数用逗号分隔) ;

各项参数

其中yes/no也可使用1/0,pixel value为具体的数值,单位象素。

参数 取值范围 说明

alwaysLowered yes/no 指定窗口隐藏在所有窗口之后

alwaysRaised yes/no 指定窗口悬浮在所有窗口之上

depended yes/no 是否和父窗口同时关闭

directories yes/no Nav2和3的目录栏是否可见

height pixel value 窗口高度

hotkeys yes/no 在没菜单栏的窗口中设安全退出热键

innerHeight pixel value 窗口中文档的像素高度

innerWidth pixel value 窗口中文档的像素宽度

location yes/no 位置栏是否可见

menubar yes/no 菜单栏是否可见

outerHeight pixel value 设定窗口(包括装饰边框)的像素高度

outerWidth pixel value 设定窗口(包括装饰边框)的像素宽度

resizable yes/no 窗口大小是否可调整

screenX pixel value 窗口距屏幕左边界的像素长度

screenY pixel value 窗口距屏幕上边界的像素长度

scrollbars yes/no 窗口是否可有滚动栏

titlebar yes/no 窗口题目栏是否可见

toolbar yes/no 窗口工具栏是否可见

Width pixel value 窗口的像素宽度

z-look yes/no 窗口被激活后是否浮在其它窗口之上

常用示例:

window.open ('page.html', 'newwindow', 'fullscreen'); //全屏

window.open ('page.html', '_self', 'fullscreen = yes , height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no'); // 在当前页面弹出一个全屏的窗口,并有详细的设置

popWin = window.open('test.jsp'); // 获取弹出窗口对象,以便进行操作

popWin .focus(); // 聚焦窗口2、window.alert()参数,只有一个,显示警告框的信息;无返回值。

3、window.confirm() 参数就只有一个。显示提示框的信息。按确定,返回true;按取消返回false。

4、window.prompt()参数,有两个,第一个参数,显示提示输入框的信息。第二个参数,用于显示输入框的默认值。返回,用户输入的值。

5、window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框。window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。

showModalDialog()与showModelessDialog()的区别,在于showModalDialog()打开的窗口,置在父窗口上,必须关闭才能访问父窗口;showModelessDialog(),打开后不必关闭也可访问父窗口打开的窗口。使用方法:

vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures]);

vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures]);

参数说明:

sURL--

必选参数,类型:字符串。用来指定对话框要显示的文档的URL。

vArguments--

可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。

sFeatures--

可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号隔开。

1.dialogHeight :对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。

2.dialogWidth: 对话框宽度。

3.dialogLeft: 离屏幕左的距离。

4.dialogTop: 离屏幕上的距离。

5.center: {yes no 1 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。

6.help: {yes no 1 0 }:是否显示帮助按钮,默认yes。

7.resizable: {yes no 1 0 } [IE5+]:是否可被改变大小。默认no。

8.status: {yes no 1 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。

9.scroll:{ yes no 1 0 on off }:指明对话框是否显示滚动条。默认为yes。 参数传递:

要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:

调用页面

script

var obj = new Object();

obj.name="LOVEJS";

window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");

/script

对话框页面

script

var obj = window.dialogArguments ;

alert("您传递的参数为:" + obj.name)

/script 获取对象:

可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:

调用页面

script

str = window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");

alert(str);

/script

对话框页面

script

window.returnValue="在这里进行你要的操作";

/script

JS弹出对话框怎么写?

【1、最基本的js弹出对话框窗口代码】

这是最基本的js弹出对话框,其实代码就几句非常简单:

复制代码代码如下:

script LANGUAGE="javascript"

!--

window.open ("page.html")

--

/script

因为这是一段javascripts代码,所以它们应该放在script LANGUAGE="javascript"标签和/script之间。!-- 和--是对一些版本低的浏览器起作用,在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。

window.open ("page.html") 用于控制弹出新的窗口page.html,如果page.html不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)和相对路径(../)均可。用单引号和双引号都可以,只是不要混用。

这一段代码可以加入HTML的任意位置,head和/head之间可以,body间/body也可以,越前越早执行,尤其是页面代码长的页面,这种js弹出对话框想早点弹出就尽量往前放。

【2、增加属性设置的js弹出对话框代码】

下面再说一说js弹出对话框窗口属性的设置。只要再往上面的代码中加一点东西就可以了。

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

复制代码代码如下:

View Code

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

参数解释:

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、用函数控制js弹出对话框窗口】

下面是一个完整js弹出对话框的代码。

复制代码代码如下:

View Code

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个窗口的js弹出对话框】

对源代码稍微改动一下:

复制代码代码如下:

View Code

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=no, status=no")

//写成一行

window.open ("page2.html","newwindow2", "height=100, width=100, top=100, left=100,toolbar=no,menubar=no, scrollbars=no, resizable=no, location=no, status=no")

//写成一行

}

//--

/script

为避免弹出的2个窗口覆盖,用top和left控制一下弹出的位置不要相互覆盖即可。最后用上面说过的四种方法调用即可。

注意:2个js弹出对话框窗口的name(newwindows和newwindow2)不要相同,或者干脆全部为空。

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

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

复制代码代码如下:

View Code

script language="javascript"

!--

function openwin()

{window.open("page.html","","width=200,height=200")

}

//--

/script

加入body区:

复制代码代码如下:

a href="1.htm" onclick="openwin()"open/a

即可。

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

下面我们再对js弹出对话框的窗口进行一些控制,效果就更好了。如果我们再将一小段代码加入弹出的页面(注意是加入到page.html的HTML中,可不是主页面中,否则...),让它10秒后自动关闭是不是更酷了?

首先,将如下代码加入page.html文件的head区:

复制代码代码如下:

script language="javascript"

function closeit()

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

/script

然后,再用body onload="closeit()" 这一句话代替page.html中原有的BODY这一句就可以了。(这一句话千万不要忘记写啊!这一句的作用是调用关闭窗口的代码,10秒钟后就自行关闭该窗口。)

【7、在js弹出对话框窗口中加上一个关闭按钮】

复制代码代码如下:

FORM

INPUT TYPE="BUTTON" value="关闭" onClick="window.close()"

/FORM

呵呵,现在更加完美了!

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

上面的例子都包含两个窗口,一个是主窗口,另一个是弹出的小窗口。

通过下面的例子,你可以在一个页面内完成上面的效果。

复制代码代码如下:

View Code

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("h1Hello!/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、终极应用--js弹出对话框的窗口之Cookie控制】

回想一下,上面的弹出窗口虽然酷,但是有一点小毛病(沉浸在喜悦之中,一定没有发现吧?)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口都会自动执行js弹出对话框代码一次,是不是非常烦人?:-(有解决的办法吗?Yes! ;-) Follow me.

我们使用cookie来控制一下就可以了。

首先,将如下代码加入主页面HTML的HEAD区:

复制代码代码如下:

View Code

script

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=(documents.cookie.substring(offset,end))

}

}

return returnvalue;

}

function loadpopup(){

if (get_cookie("popped")==""){

openwin()

documents.cookie="popped=yes"

}

}

/script

然后,用bodyonload="loadpopop()"(注意不是openwin而是loadpop啊!)替换主页面中原有的BODY这一句即可。你可以试着刷新一下这个页面或重新进入该页面,窗口再也不会再有js弹出对话框了。真正的实现只弹一次。

需要注意的是,JS脚本中的的大小写最好前后保持一致。

以上就是九种js弹出对话框的代码,如果有其它方法也可以提供给我喔,当然自己写的弹窗也Ok的啦。

希望河南新华的回答可以帮助到你


分享标题:javascript弹出窗口,javascript弹出窗口万能代码
本文链接:http://scyanting.com/article/dsdcppp.html