200分求window.open问题

swich 2004-03-30 03:32:02
用window.open( url1,winName,theproperty )打开的小窗口,如何在其最小化时,用window.open( url2,winName,theproperty )再次激活

注意新开窗口的名字winName是一样的
...全文
68 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
swich 2004-03-31
  • 打赏
  • 举报
回复
感谢大家的帮忙,结贴
amwje123 2004-03-31
  • 打赏
  • 举报
回复
UP
guokai1217 2004-03-31
  • 打赏
  • 举报
回复
哈哈,我也不会,顶一下先
xijupony 2004-03-31
  • 打赏
  • 举报
回复
在你使用windowName打开a.htm窗口时,窗口大小就已经固定了的。
如果你想在同一个窗口中打开另外一个网页b.htm,却希望是另外一个大小,那么,你只是在b.htm里做window.resizeTo() Or window.resizeBy()

parent.htm
<input type="button" value=" 打开窗口A " onClick="OpenWinA()">
<input type="button" value=" 打开窗口B " onClick="OpenWinB()">
<script language="javascript">
var objWin = null; //定义window对象,以便下面使用objWin.focus()语句
function OpenWinA(){
objWin = window.open("a.htm","Win","resizable=no");
objWin.focus();
}
function OpenWinB(){
objWin = window.open("b.htm","Win","resizable=no"); //使用同一个windowName,这样a.htm与b.htm就能够在同一个窗口打开。大小不管,两个页面的大小在各自的网页中设置
objWin.focus();
}
</script>

a.htm
<script language="javascript">
var W = 200,H = 200;
var Top = (window.screen.availHeight-H)/2, Left = (window.screen.availWidth-W)/2;
window.resizeTo(W,H);
window.moveTo(Left,Top);
</script>

b.htm
<script language="javascript">
var W = 300,H = 300;
var Top = (window.screen.availHeight-H)/2, Left = (window.screen.availWidth-W)/2;
window.resizeTo(W,H);
window.moveTo(Left,Top);
</script>
liujiayu10 2004-03-31
  • 打赏
  • 举报
回复
玩透弹出窗口
【1、最基本的弹出窗口代码】

其实代码非常简单:

<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>也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往前放。


【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=no, status=no')
file://写/成一行
-->
</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")
file://写/成一行
}
file://--/>
</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=no, status=no")
file://写/成一行
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")
file://写/成一行
}
file://--/>
</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")
}
file://--/>
</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) file://毫/秒}
</script>
然后,再用<body onload="closeit()"> 这一句话代替page.html中原有的<BODY>这一句就可以了。(这一句话千万不要忘记写啊!这一句的作用是调用关闭窗口的代码,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");
file://写/成一行
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!
leihome 2004-03-31
  • 打赏
  • 举报
回复
也是我想知道的问题,关注ING ̄
sheng9hhd 2004-03-31
  • 打赏
  • 举报
回复
你现在的不就是这样的?
swich 2004-03-31
  • 打赏
  • 举报
回复
to awaysrain(绝对零度)(新的一年,新的开始) ( )

我要的不是这个效果

我所要的是

<INPUT type=button value="open1" onclick="openwindow('a.htm','newWin',150,100)">

<INPUT type=button value="open2" onclick="openwindow('b.htm','newWin',150,100)">

<SCRIPT LANGUAGE=javascript>
<!--
function openwindow( url, winName, width, height)
{
xposition=0; yposition=0;
if ((parseInt(navigator.appVersion) >= 4 ))
{
xposition = (screen.width - width) / 2;
yposition = (screen.height - height) / 2;
}
theproperty= "width=" + width + ","
+ "height=" + height + ","
+ "location=0,"
+ "menubar=0,"
+ "resizable=1,"
+ "scrollbars=1,"
+ "status=0,"
+ "titlebar=0,"
+ "toolbar=0,"
+ "hotkeys=0,"
+ "screenx=" + xposition + "," //仅适用于Netscape
+ "screeny=" + yposition + "," //仅适用于Netscape
+ "left=" + xposition + "," //IE
+ "top=" + yposition; //IE
window.open( url,winName,theproperty );

}
//-->
</SCRIPT>

点击open1按钮在a.htm打开后,把其最小化,再点击open2按钮使最小化的a.htm跳出到世纪大小并显示b.htm的内容
芝城游侠 2004-03-31
  • 打赏
  • 举报
回复
up,学习
awaysrain 2004-03-31
  • 打赏
  • 举报
回复
是这种效果吗?

test.htm
------------------------------------------------
<INPUT type=button value="open" onclick="openwindow('a.htm','newWin',150,100)">
<SCRIPT LANGUAGE=javascript>
<!--
function openwindow( url, winName, width, height)
{
xposition=0; yposition=0;
if ((parseInt(navigator.appVersion) >= 4 ))
{
xposition = (screen.width - width) / 2;
yposition = (screen.height - height) / 2;
}
theproperty= "width=" + width + ","
+ "height=" + height + ","
+ "location=0,"
+ "menubar=0,"
+ "resizable=1,"
+ "scrollbars=1,"
+ "status=0,"
+ "titlebar=0,"
+ "toolbar=0,"
+ "hotkeys=0,"
+ "screenx=" + xposition + "," //仅适用于Netscape
+ "screeny=" + yposition + "," //仅适用于Netscape
+ "left=" + xposition + "," //IE
+ "top=" + yposition; //IE
window.open( url,winName,theproperty );

}
//-->
</SCRIPT>

a.htm
------------------------------
<body onblur="opener.openwindow('b.htm','newWin',150,100)">a.htm


b.htm
-----------------------------
<body onload="self.focus();">b.htm
andraw2002 2004-03-31
  • 打赏
  • 举报
回复
我想实现的是在在最小化后,再次触发它
---------------------------

能不能这样子:先把你原先打开的窗口winName关掉,再后再window.open()呢??
swich 2004-03-31
  • 打赏
  • 举报
回复
<body onblur='self.focus();'>只能实现窗口不能最小化
我想实现的是在在最小化后,再次触发它
aojiankd 2004-03-31
  • 打赏
  • 举报
回复
up
学习
RickyHuang 2004-03-31
  • 打赏
  • 举报
回复
<body onblur='self.focus();'>可以搞定
redstorm11 2004-03-31
  • 打赏
  • 举报
回复
up
syfhome 2004-03-30
  • 打赏
  • 举报
回复
winopener=window.open("1.thm",'asd','.....');
winopener.focus();
试试看啊,我用的还行,可以使新开窗口成为焦点
softjo 2004-03-30
  • 打赏
  • 举报
回复
小弟来迟了一步,其实这个问题简单,大家都想的太复杂了吧
这是我要做的广告小窗口网页
ad.html
<html>
<head>
<script LANGUAGE="JavaScript">
<!--
function openwin() {
window.open ("ad.html", "newwindow", "height=100, width=100, toolbar=no,

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

//写成一行
}
//-->
</script>
</head>
<body onunload="openwin()">
广告小窗口.............
</body>
</html>
这是主程序拉 index.htm
<html>
<head>
<script LANGUAGE="JavaScript">
<!--
function openwin() {
window.open ("ad.html", "newwindow", "height=100, width=100, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no")
}
//-->
</script>
</head>
<body onload="openwin()">
...页面内容...
</body>
</html>嘿嘿,简单吧,应该是这样的
dippergao 2004-03-30
  • 打赏
  • 举报
回复
这工夫最需要别人帮着UP了!
可惜偶的贴子却没人帮忙啊……
luojx 2004-03-30
  • 打赏
  • 举报
回复
再重新执行
window.open( url1,winName,theproperty )
或者让打开小窗口的窗口刷新
citybird888 2004-03-30
  • 打赏
  • 举报
回复
up
加载更多回复(18)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧