﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-javainthinking-文章分类-JavaScript实用</title><link>http://www2.blogjava.net/javainthinking/category/1566.html</link><description>熊炼的个性空间和java学习之旅</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 18:39:04 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 18:39:04 GMT</pubDate><ttl>60</ttl><item><title>制作Javascript弹出窗口技巧九则</title><link>http://www.blogjava.net/javainthinking/articles/5362.html</link><dc:creator>熊炼的个性空间和java学习之旅</dc:creator><author>熊炼的个性空间和java学习之旅</author><pubDate>Tue, 31 May 2005 04:57:00 GMT</pubDate><guid>http://www.blogjava.net/javainthinking/articles/5362.html</guid><wfw:comment>http://www.blogjava.net/javainthinking/comments/5362.html</wfw:comment><comments>http://www.blogjava.net/javainthinking/articles/5362.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javainthinking/comments/commentRss/5362.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javainthinking/services/trackbacks/5362.html</trackback:ping><description><![CDATA[<SPAN id=ArticleContent1_ArticleContent1_lblContent><FONT face=宋体><FONT size=2><STRONG>制作Javascript弹出窗口技巧九则<BR><BR></STRONG><FONT style="BACKGROUND-COLOR: #ffcccc" color=#0033ff>1、最基本的弹出窗口代码</FONT> <BR><BR>　　其实代码非常简单： <BR><BR>　　&lt; SCRIPT LANGUAGE="javascript"&gt;<BR>　　&lt; !--<BR>　　window.open ("page.html")<BR>　　-- &gt;<BR>　　&lt; /SCRIPT&gt; <BR><BR>　　因为这是一段Javascript代码，所以它们应该放在&lt; SCRIPT LANGUAGE="javascript"&gt;之间。 &lt; !-- 和 --&gt;是对一些版本低的浏览器起作用，在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。 <BR><BR>　　window.open ("page.html") 用于控制弹出新的窗口page.html，如果page.html不与主窗口在同一路径下，前面应写明路径，绝对路径(http://)和相对路径(../)均可。 <BR><BR>　　用单引号和双引号都可以，只是不要混用。 <BR><BR>　　这一段代码可以加入HTML的任意位置，&lt; head&gt;和&lt; /head&gt;之间可以，&lt; body&gt;间&lt; /body&gt;也可以，越前越早执行，尤其是页面代码长，又想使页面早点弹出就尽量往前放。 也可以，越前越早执行，尤其是页面代码长，又想使页面早点弹出就尽量往前放。 <BR><BR>　　<FONT style="BACKGROUND-COLOR: #ffcccc" color=#3333ff>2、设置后的弹出窗口</FONT> <BR><BR>　　下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。我们来定制这个弹出的窗口的外观，尺寸大小，弹出的位置以适应该页面的具体情况。 <BR><BR>　　&lt; SCRIPT LANGUAGE="javascript"&gt;<BR>　　&lt; !--<BR><BR>　　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")<BR><BR>　　//写成一行<BR>　　--&gt;<BR>　　&lt; /SCRIPT&gt; <BR><BR>　　参数解释： <BR><BR>　　&lt; SCRIPT LANGUAGE="javascript"&gt; js脚本开始；<BR><BR>　　window.open 弹出新窗口的命令；<BR>　　"page.html" 弹出窗口的文件名；<BR>　　"newwindow" 弹出窗口的名字（不是文件名），非必须，可用空"代替；<BR>　　height=100 窗口高度；<BR>　　width=400 窗口宽度；<BR>　　top=0 窗口距离屏幕上方的象素值；<BR>　　left=0 窗口距离屏幕左侧的象素值；<BR>　　toolbar=no 是否显示工具栏，yes为显示；<BR>　　menubar，scrollbars 表示菜单栏和滚动栏。<BR>　　resizable=no 是否允许改变窗口大小，yes为允许；<BR>　　location=no 是否显示地址栏，yes为允许；<BR>　　status=no 是否显示状态栏内的信息（通常是文件已?打开），yes为允许；<BR>　　&lt; /SCRIPT&gt; js脚本结束 <BR><BR>　　<FONT style="BACKGROUND-COLOR: #ffcccc" color=#0033ff>3、用函数控制弹出窗口</FONT> <BR><BR>　　下面是一个完整的代码： <BR><BR>　　&lt; html&gt;<BR>　　&lt; head&gt;<BR>　　&lt; script LANGUAGE="JavaScript"&gt;<BR>　　&lt; !--<BR>　　function openwin() {<BR><BR>　　window.open ("page.html", "newwindow", "height=100, width=400, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no")<BR><BR>　　//写成一行<BR><BR>　　}<BR><BR>　　//--&gt;<BR>　　&lt; /script&gt;<BR>　　&lt; /head&gt;<BR><BR>　　&lt; body onload="openwin()"&gt; <BR><BR>　　...任意的页面内容... <BR><BR>　　&lt; /body&gt;<BR>　　&lt; /html&gt;<BR><BR>　　这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。<BR><BR>　　怎么调用呢？<BR><BR>　　方法一：&lt; body onload="openwin()"&gt; 浏览器读页面时弹出窗口；<BR><BR>　　方法二：&lt; body onunload="openwin()"&gt; 浏览器离开页面时弹出窗口；<BR><BR>　　方法三：用一个连接调用：&lt; a href="#" onclick="openwin()"&gt;打开一个窗口&lt; /a&gt;<BR><BR>　　注意：使用的"#"是虚连接。<BR><BR>　　方法四：用一个按钮调用：&lt; input type="button" onclick="openwin()" value="打开窗口"&gt; <BR><BR>　　<FONT style="BACKGROUND-COLOR: #ffcccc"><FONT color=#0033ff>4、同时弹出2个窗口</FONT> </FONT><BR><BR>　　对源代码稍微改动一下：<BR><BR>　　&lt; script LANGUAGE="JavaScript"&gt;<BR>　　&lt; !--<BR>　　function openwin() {<BR><BR>　　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")<BR><BR>　　//写成一行<BR><BR>　　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")<BR><BR>　　//写成一行<BR>　　}<BR><BR>　　//--&gt;<BR>　　&lt; /script&gt;<BR><BR>　　为避免弹出的2个窗口覆盖，用top和left控制一下弹出的位置不要相互覆盖即可。最后用上面说过的四种方法调用即可。<BR><BR>　　注意：2个窗口的name(newwindows和newwindow2)不要相同，或者干脆全部为空。OK？<BR><BR>　　<FONT style="BACKGROUND-COLOR: #ffcccc" color=#0033ff>5、主窗口打开文件1.htm，同时弹出小窗口page.html</FONT><BR><BR>　　如下代码加入主窗口&lt; head&gt;区：<BR><BR>　　&lt; script language="javascript"&gt;<BR>　　&lt; !--<BR>　　function openwin() {<BR><BR>　　window.open("page.html","","width=200,height=200")<BR><BR>　　}<BR><BR>　　//--&gt;<BR><BR>　　&lt; /script&gt;<BR><BR>　　加入&lt; body&gt;区：<BR><BR>　　&lt; a href="1.htm" onclick="openwin()"&gt;open&lt; /a&gt;即可<BR><BR>　　<FONT style="BACKGROUND-COLOR: #ffcccc" color=#0033ff>6、弹出的窗口之定时关闭控制 <BR></FONT><BR>　　下面我们再对弹出的窗口进行一些控制，效果就更好了。如果我们再将一小段代码加入弹出的页面(注意是加入到page.html的HTML中，可不是主页面中，否则...)，让它10秒后自动关闭是不是更酷了？ <BR><BR>　　首先，将如下代码加入page.html文件的&lt; head&gt;区：<BR><BR>　　&lt; script language="JavaScript"&gt;<BR><BR>　　function closeit() {<BR><BR>　　setTimeout("self.close()",10000) //毫秒<BR><BR>　　}<BR><BR>　　&lt; /script&gt;<BR><BR>　　然后，再用&lt; body onload="closeit()"&gt; 这一句话代替page.html中?有的&lt; BODY&gt;这一句就可以了。(这一句话千万不要忘记写啊！这一句的作用是调用关闭窗口的代码，10秒钟后就自行关闭该窗口。) <BR><BR>　　<FONT style="BACKGROUND-COLOR: #ffcccc" color=#0033ff>7、在弹出窗口中加上一个关闭按钮</FONT> <BR><BR>　　&lt; FORM&gt;<BR>　　&lt; INPUT TYPE="BUTTON" VALUE="关闭" onClick="window.close()"&gt;<BR>　　&lt; /FORM&gt; <BR><BR>　　呵呵，现在更加完美了！ <BR><BR>　　<FONT style="BACKGROUND-COLOR: #ffcccc" color=#0033ff>8、网页内包含的弹出窗口--一个页面两个窗口 <BR></FONT><BR>　　上面的例子都包含两个窗口，一个是主窗口，另一个是弹出的小窗口。通过下面的例子，你可以在一个页面内完成上面的效果。 <BR><BR>　　&lt; html&gt;<BR>　　&lt; head&gt;<BR><BR>　　&lt; SCRIPT LANGUAGE="JavaScript"&gt;<BR>　　function openwin()<BR><BR>　　{<BR><BR>　　OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no,scrollbars="+scroll+",menubar=no");<BR><BR>　　//写成一行<BR><BR>　　OpenWindow.document.write("&lt; TITLE&gt;例子&lt; /TITLE&gt;")<BR>　　OpenWindow.document.write("&lt; BODY BGCOLOR=#ffffff&gt;")<BR>　　OpenWindow.document.write("&lt; h1&gt;Hello!&lt; /h1&gt;")<BR>　　OpenWindow.document.write("New window opened!")<BR>　　OpenWindow.document.write("&lt; /BODY&gt;")<BR>　　OpenWindow.document.write("&lt; /HTML&gt;")<BR>　　OpenWindow.document.close()<BR><BR>　　}<BR>　　&lt; /SCRIPT&gt;<BR><BR>　　&lt; /head&gt;<BR>　　&lt; body&gt;<BR><BR>　　&lt; a href="#" onclick="openwin()"&gt;打开一个窗口&lt; /a&gt;<BR>　　&lt; input type="button" onclick="openwin()" value="打开窗口"&gt;<BR>　　&lt; /body&gt;<BR>　　&lt; /html&gt;<BR><BR>　　看看OpenWindow.document.write()里面的代码不就是标准的HTML吗？只要按照格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用OpenWindow.document.close()结束啊。 <BR><BR>　　<FONT style="BACKGROUND-COLOR: #ffcccc" color=#0033ff>9、终极应用--弹出的窗口之Cookie控制</FONT> <BR><BR>　　回想一下，上面的弹出窗口虽然酷，但是有一点小毛病(沉浸在喜悦之中，一定没有发现吧？)比如你将上面的脚本放在一个需要频繁?过的页面里(例如首页)，那么每次刷新这个页面，窗口都会弹出一次，是不是非常烦人？:-( <BR><BR>　　有解决的办法吗？当然有！我们使用cookie来控制一下就可以了。首先，将如下代码加入主页面HTML的&lt; HEAD&gt;区：<BR><BR>　　&lt; script&gt;<BR>　　function openwin(){<BR><BR>　　window.open("page.html","","width=200,height=200")<BR><BR>　　}<BR><BR>　　function get_cookie(Name) {<BR><BR>　　var search = Name + "=" var returnvalue = "";<BR>　　if (document.cookie.length &gt; 0) {<BR>　　offset = document.cookie.indexOf(search)<BR>　　if (offset != -1) {<BR>　　offset += search.length<BR>　　end = document.cookie.indexOf(";", offset);<BR><BR>　　if (end == -1)<BR>　　end = document.cookie.length;<BR>　　returnvalue=unescape(document.cookie.substring(offset, end))<BR><BR>　　}<BR><BR>　　}<BR><BR>　　return returnvalue;<BR><BR>　　}<BR><BR>　　function loadpopup(){<BR>　　if (get_cookie("popped")=="){<BR><BR>　　openwin()<BR>　　document.cookie="popped=yes"<BR><BR>　　}<BR>　　}<BR>　　&lt; /script&gt;<BR><BR>　　然后，用&lt; body onload="loadpopup()"&gt;（注意不是openwin而是loadpop啊！）替换主页面中原有的&lt; BODY&gt;这一句即可。你可以试着刷新一下这个页面或重新进入该页面，窗口再也不会弹出了。真正的Pop-Only-Once！<BR>原文连接如下：<A href="http://dev.csdn.net/article/46/46507.shtm">http://dev.csdn.net/article/46/46507.shtm</A></FONT></FONT></SPAN><img src ="http://www.blogjava.net/javainthinking/aggbug/5362.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javainthinking/" target="_blank">熊炼的个性空间和java学习之旅</a> 2005-05-31 12:57 <a href="http://www.blogjava.net/javainthinking/articles/5362.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>做的东西弹出一个窗口处理某些动作后刷新父窗口</title><link>http://www.blogjava.net/javainthinking/articles/5361.html</link><dc:creator>熊炼的个性空间和java学习之旅</dc:creator><author>熊炼的个性空间和java学习之旅</author><pubDate>Tue, 31 May 2005 04:53:00 GMT</pubDate><guid>http://www.blogjava.net/javainthinking/articles/5361.html</guid><wfw:comment>http://www.blogjava.net/javainthinking/comments/5361.html</wfw:comment><comments>http://www.blogjava.net/javainthinking/articles/5361.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javainthinking/comments/commentRss/5361.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javainthinking/services/trackbacks/5361.html</trackback:ping><description><![CDATA[原文连接：<BR><A href="http://www.cnblogs.com/huobazi/archive/2004/04/06/5325.aspx">做的东西弹出一个窗口处理某些动作后刷新父窗口<BR>用</A><BR>window.opener.location.reload();<BR>刷新<BR>如果父窗口在此之前如果有过提交数据的动作，则会出现这么个讨厌的对话筐<BR>“不重新发送信息，则无法刷新网页”<BR>痛苦......<BR>CSDN搜索未果(有几贴都是用Response.Redirect的方法，但我这里是刷父窗口)。<BR>痛苦.<BR>........<BR>翻我的<A href="http://www.aspxboy.com/private/showthread.asp?threadid=148"><STRIKE>小本本</STRIKE></A>&nbsp;后找到办法<BR>用<BR>window.opener.location.href=window.opener.location.href<BR>去刷新（其实是重定位了一下）父窗口<BR>可行。<BR><img src ="http://www.blogjava.net/javainthinking/aggbug/5361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javainthinking/" target="_blank">熊炼的个性空间和java学习之旅</a> 2005-05-31 12:53 <a href="http://www.blogjava.net/javainthinking/articles/5361.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>