<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[弹窗代码集合，自由控制你的弹出窗口]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[代码编程]]></category>
<pubDate>Mon, 16 Oct 2006 07:42:22 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	<br/>经常上网的朋友可能会到过这样一些网站，一进入首页立刻会弹出一个窗口，或者按一个连接或按钮弹出，通常在这个窗口里会显示一些注意事项、版权信息、警告、欢迎光顾之类的话或者作者想要特别提示的信息。其实制作这样的页面效果非常的容易，只要往该页面的html里加入几段javascript代码即可实现。下面俺就带您剖析它的奥秘。 <br/><br/>【1、最基本的弹出窗口代码】 <br/><br/>其实代码非常简单： <br/><br/>&lt;scriptlanguage=&quot;javascript&quot;&gt; <br/>&lt;!-- <br/>window.open(’page.html’) <br/>--&gt; <br/>&lt;/script&gt; <br/>因为着是一段javascripts代码，所以它们应该放在&lt;scriptlanguage=&quot;javascript&quot;&gt;标签和&lt;/script&gt;之间。&lt;!--和--&gt;是对一些版本低的浏览器起作用，在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。 <br/>window.open(’page.html’)用于控制弹出新的窗口page.html，如果page.html不与主窗口在同一路径下，前面应写明路径，绝对路径(http://)和相对路径(../)均可。用单引号和双引号都可以，只是不要混用。 <br/>这一段代码可以加入html的任意位置，&lt;head&gt;和&lt;/head&gt;之间可以，&lt;body&gt;间&lt;/body&gt;也可以，越前越早执行，尤其是页面代码长，又想使页面早点弹出就尽量往前放。 <br/><br/><br/>【2、经过设置后的弹出窗口】 <br/><br/>下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。 <br/>我们来定制这个弹出的窗口的外观，尺寸大小，弹出的位置以适应该页面的具体情况。 <br/>&lt;scriptlanguage=&quot;javascript&quot;&gt; <br/>&lt;!-- <br/>window.open(’page.html’,’newwindow’,’height=100, <br/>width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,<br/><br/>resizable=no,location=no,status=no’) <br/>//写成一行 <br/>--&gt; <br/>&lt;/script&gt; <br/>参数解释： <br/>&lt;scriptlanguage=&quot;javascript&quot;&gt;js脚本开始； <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/><br/>【3、用函数控制弹出窗口】 <br/><br/>下面是一个完整的代码。 <br/>&lt;html&gt; <br/>&lt;head&gt; <br/>&lt;scriptlanguage=&quot;javascript&quot;&gt; <br/>&lt;!-- <br/>functionopenwin(){window.open(&quot;page.html&quot;,&quot;newwindow&quot;, <br/>&quot;height=100,width=400,toolbar= <br/>no,menubar=no,scrollbars=no,resizable=no,location=no,status=no&quot; <br/>//写成一行 <br/>} <br/>//--&gt; <br/>&lt;/script&gt; <br/>&lt;/head&gt; <br/>&lt;bodyonload=&quot;openwin()&quot;&gt; <br/>...任意的页面内容... <br/>&lt;/body&gt; <br/>&lt;/html&gt; <br/>这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。 <br/>怎么调用呢？ <br/>方法一：&lt;bodyonload=&quot;openwin()&quot;&gt;浏览器读页面时弹出窗口； <br/>方法二：&lt;bodyonunload=&quot;openwin()&quot;&gt;浏览器离开页面时弹出窗口； <br/>方法三：用一个连接调用： <br/>&lt;ahref=&quot;#&quot;onclick=&quot;openwin()&quot;&gt;打开一个窗口&lt;/a&gt; <br/>注意：使用的“#”是虚连接。 <br/>方法四：用一个按钮调用： <br/>&lt;inputtype=&quot;button&quot;onclick=&quot;openwin()&quot;value=&quot;打开窗口&quot;&gt; <br/><br/>【4、同时弹出2个窗口】 <br/><br/>对源代码稍微改动一下： <br/>&lt;scriptlanguage=&quot;javascript&quot;&gt; <br/>&lt;!-- <br/>functionopenwin() <br/>{window.open(&quot;page.html&quot;,&quot;newwindow&quot;,&quot;height=100,width=100,top=0,left=0,<br/><br/>toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no&quot; <br/>//写成一行 <br/>window.open(&quot;page2.html&quot;,&quot;newwindow2&quot;,&quot;height=100,width=100,top=100,left=100,<br/><br/>toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no&quot; <br/>//写成一行 <br/>} <br/>//--&gt; <br/>&lt;/script&gt; <br/>为避免弹出的2个窗口覆盖，用top和left控制一下弹出的位置不要相互覆盖即可。最后用上面说过的四种方法调用即可。 <br/><br/>注意：2个窗口的name(newwindows和newwindow2)不要相同，或者干脆全部为空。ok？ <br/><br/>【5、主窗口打开文件1.htm，同时弹出小窗口page.html】 <br/><br/>如下代码加入主窗口&lt;head&gt;区： <br/>&lt;scriptlanguage=&quot;javascript&quot;&gt; <br/>&lt;!-- <br/>functionopenwin() <br/>{window.open(&quot;page.html&quot;,&quot;&quot;,&quot;width=200,height=200&quot; <br/>} <br/>//--&gt; <br/>&lt;/script&gt; <br/>加入&lt;body&gt;区： <br/>&lt;ahref=&quot;1.htm&quot;onclick=&quot;openwin()&quot;&gt;open&lt;/a&gt;即可。 <br/><br/>【6、弹出的窗口之定时关闭控制】 <br/><br/>下面我们再对弹出的窗口进行一些控制，效果就更好了。如果我们再将一小段代码加入弹出的页面(注意是加入到page.html的html中，可不是主页面中，否则...)，让它10秒后自动关闭是不是更酷了？ <br/><br/>首先，将如下代码加入page.html文件的&lt;head&gt;区： <br/>&lt;scriptlanguage=&quot;javascript&quot;&gt; <br/>functioncloseit() <br/>{settimeout(&quot;self.close()&quot;,10000)//毫秒} <br/>&lt;/script&gt; <br/>然后，再用&lt;bodyonload=&quot;closeit()&quot;&gt;这一句话代替page.html中原有的&lt;body&gt;这一句就可以了。(这一句话千万不要忘记写啊！这一句的作用是调用关闭窗口的代码，10秒钟后就自行关闭该窗口。) <br/><br/>【7、在弹出窗口中加上一个关闭按钮】 <br/><br/>&lt;form&gt; <br/>&lt;inputtype=’button’value=’关闭’onclick=’window.close()’&gt; <br/>&lt;/form&gt; <br/>呵呵，现在更加完美了！ <br/><br/>【8、内包含的弹出窗口-一个页面两个窗口】 <br/><br/>上面的例子都包含两个窗口，一个是主窗口，另一个是弹出的小窗口。 <br/><br/>通过下面的例子，你可以在一个页面内完成上面的效果。 <br/>&lt;html&gt; <br/>&lt;head&gt; <br/>&lt;scriptlanguage=&quot;javascript&quot;&gt; <br/>functionopenwin() <br/>{openwindow=window.open(&quot;&quot;,&quot;newwin&quot;,&quot;height=250, <br/>width=250,toolbar=no,scrollbars=&quot;scroll&quot;,menubar=no&quot;; <br/>//写成一行 <br/>openwindow.document.write(&quot;&lt;title&gt;例子&lt;/title&gt;&quot; <br/>openwindow.document.write(&quot;&lt;bodybgcolor=#ffffff&gt;&quot; <br/>openwindow.document.write(&quot;&lt;h1&gt;hello!&lt;/h1&gt;&quot; <br/>openwindow.document.write(&quot;newwindowopened!&quot; <br/>openwindow.document.write(&quot;&lt;/body&gt;&quot; <br/>openwindow.document.write(&quot;&lt;/html&gt;&quot; <br/>openwindow.document.close()} <br/>&lt;/script&gt; <br/>&lt;/head&gt; <br/>&lt;body&gt; <br/>&lt;ahref=&quot;#&quot;onclick=&quot;openwin()&quot;&gt;打开一个窗口&lt;/a&gt; <br/>&lt;inputtype=&quot;button&quot;onclick=&quot;openwin()&quot;value=&quot;打开窗口&quot;&gt; <br/>&lt;/body&gt; <br/>&lt;/html&gt; <br/>看看openwindow.document.write()里面的代码不就是标准的html吗？只要按照格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用openwindow.document.close()结束啊。 <br/><br/>【9、终极应用--弹出的窗口之cookie控制】 <br/><br/>回想一下，上面的弹出窗口虽然酷，但是有一点小毛病(沉浸在喜悦之中，一定没有发现吧？)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页)，那么每次刷新这个页面，窗口都会弹出一次，是不是非常烦人？:-(有解决的办法吗？yes!;-)followme. <br/><br/>我们使用cookie来控制一下就可以了。 <br/><br/>首先，将如下代码加入主页面html的&lt;head&gt;区： <br/>&lt;script&gt; <br/>functionopenwin() <br/>{window.open(&quot;page.html&quot;,&quot;&quot;,&quot;width=200,height=200&quot;} <br/>functionget_cookie(name) <br/>{varsearch=name&quot;=&quot; <br/>varreturnvalue=&quot;&quot;; <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(&quot;;&quot;,offset); <br/>if(end==-1) <br/>end=document.cookie.length; <br/>returnvalue=unescape(document.cookie.substring(offset,end)) <br/>} <br/>} <br/>returnreturnvalue; <br/>} <br/>functionloadpopup(){ <br/>if(get_cookie(’popped’)==’’){ <br/>openwin() <br/>document.cookie=&quot;popped=yes&quot; <br/>} <br/>} <br/>&lt;/script&gt; <br/>然后，用&lt;bodyonload=&quot;loadpopup()&quot;&gt;（注意不是openwin而是loadpop啊！）替换主页面中原有的&lt;body&gt;这一句即可。你可以试着刷新一下这个页面或重新进入该页面，窗口再也不会弹出了。真正的pop-only-once！ <br/><br/>写到这里弹出窗口的制作和应用技巧基本上算是完成了，俺也累坏了，一口气说了这么多，希望对正在制作网页的朋友有所帮助俺就非常欣慰了。 <br/><br/>需要注意的是，js脚本中的的大小写最好前后保持一致。 <br/>MYIE也可以弹出 <br/>&lt;script language=&quot;javascript&quot;&gt;<br/>focusid=setTimeout(&quot;focus();window.showModelessDialog(&#039;&#039;,&#039;&#039;,&#039;scroll:1;status:0;help:0;resizable:1;dialogWidth:0px;dialogHeight:0px&#039;)&quot;,0000)<br/>&lt;/script&gt;<br/><br/><br/>Tags - <a href="http://www.dzhope.com/tags/%25E5%25BC%25B9%25E5%2587%25BA%25E7%25AA%2597%25E5%258F%25A3/" rel="tag">弹出窗口</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] 弹窗代码集合，自由控制你的弹出窗口]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>