社区
JavaScript
帖子详情
我如何判断当前打开的窗口是否包含为指定名称的窗口(target="newwindow")?~
zhiin1
2003-04-26 01:18:26
我如何判断当前打开的窗口是否包含为指定名称的窗口(target="newwindow")?~
...全文
157
17
打赏
收藏
我如何判断当前打开的窗口是否包含为指定名称的窗口(target="newwindow")?~
我如何判断当前打开的窗口是否包含为指定名称的窗口(target="newwindow")?~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhiin1
2003-05-01
打赏
举报
回复
我用下面的网页打开一个名字叫winName的网页:
<body>
<a href="http://www.163.com" target="winName">163电子信箱</a>
</body>
现在我需要制作一个符合下面条件的网页:
1.名字为winName的网页不被覆盖
2.能证明当前已经存在一个名字为"winName"的网页
禽兽v5
2003-05-01
打赏
举报
回复
<!----------parent.htm begin---------->
<HTML>
<HEAD>
<TITLE>parent</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<SCRIPT>
<!--
function child(win, url, name, features)
{
this.win = win;
this.url = url;
this.name = name;
this.features = features;
}
function CheckWindow()
{
this.children = new Array();
this.count = 0;
this.insert =
function(child)
{
this.children[this.count++] = child;
}
this.update =
function(i, child)
{
this.children[i] = child;
}
this.search =
function(name)
{
for ( i = 0; i < this.count; i++ )
{
if ( this.children[i].name == name )
{
return i;
}
}
return -1;
}
this.check =
function(i)
{
if ( this.children[i].win != null && !this.children[i].win.closed )
{
return true;
}
return false;
}
this.open =
function(url, name, features)
{
var i = -1;
if ( (i = this.search(name)) == -1 )
{
win = window.open(url, name, features);
win.opener = self;
this.insert(new child(win, url, name, features));
}
else
{
if ( this.check(i) )
{
alert('名称为 "' + this.children[i].name + '" 的窗口已开启');
}
else
{
win = window.open(url, name, features);
win.opener = self;
this.update(i, new child(win, url, name, features));
}
}
}
}
var cw = new CheckWindow();
//-->
</SCRIPT>
</HEAD>
<BODY>
url: <INPUT TYPE=text Name='url' VALUE='http://cn.yahoo.com'><BR>
name: <INPUT TYPE=text NAME='windowName'><BR>
features: <INPUT Type=text NAME='features'><BR>
<INPUT TYPE=button VALUE='open' onClick='cw.open(url.value, windowName.value, features.value)'>
<A HREF="javascript:cw.open(url.value, windowName.value, features.value)">open</A>
<BR>
</BODY>
</HTML>
<!----------parent.htm end---------->
zhiin1
2003-05-01
打赏
举报
回复
晕!~~~ 我想还是结帐吧!`````
可能由于我描述的不够清楚~``你又误解了我的意思~`:(
也许这个问题就根本无法解决!:)
cm4ever(一肚子坏水) 如果你不厌烦此问题或对该感兴趣 希望能加我的QQ` 让我细细描述`
我的QQ:41708148
zhiin1
2003-04-30
打赏
举报
回复
再次感谢 cm4ever(一肚子坏水) 的支持!~```稍后40分归你!
当仍然不是你的意思~ 你的算法是通过child窗口来设定一个判断值的
如果child是其他网站的页子 我还能做到这一点吗?~~~~
(比如在别人的页子中用<a hrf="a.htm" target="child">来打开一个窗口~
现在用我的页子能判断出child存在与否吗?) 急!!!!!!!!!!!!!!
zhiin1
2003-04-30
打赏
举报
回复
非常感谢楼上的支持!
你可能误解了我的意思~`
我的意思是:
我不希望覆盖那个名字的窗口
如果存在那个名称的窗口,我只需要弹出一个对话框告诉我就行了~````
禽兽v5
2003-04-30
打赏
举报
回复
三、如果你想在子窗口中加入一些script做些事情.可以这样做:
1. 在parent.htm的child.opener = self; 这一句后面加入:
while ( child.document.readyState != 'complete' );
var head = null;
var html = child.document.body.parentNode;
for ( i = 0; i < html.children.length; i++ )
{
if ( html.children(i).tagName == 'HEAD' )
{
head = html.children(i);
break;
}
}
if ( head != null )
{
var script = child.document.createElement('SCRIPT');
script.src = 'control.js';
script.charset = 'UTF-8';
head.appendChild(script);
}
2. 接着将javascript代码写在control.js文件中.就可以了.比如:
// control.js begin
// 移动子窗口
self.moveTo(400, 200);
// control.js end
四、本程序是随手写的,没有经过严密的思考,再加上本人水平很弱,所以各位如果有更好的方法或改进其中的不足之处,并拿出来共享,本人不胜感激.
禽兽v5
2003-04-30
打赏
举报
回复
不好意思.这牛皮吹得有点大了.花了几乎整个下午的时间.
经过我仔细研究再研究,发现原来的设计思想简直就是画蛇添足,其实不用加bool变量也可以判断子窗口.
代码如下:
一、父窗口parent.htm代码:
<!----------parent.htm begin---------->
<HTML>
<HEAD>
<TITLE>parent</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<SCRIPT>
<!--
self.resizeTo(300, 300);
self.moveTo(0, 200);
var child = null;
function openChild()
{
if ( child == null || (child != null && child.closed) )
{
document.body.innerHTML += child == null ? 'child == null<BR>' : 'child != null && child.closed<BR>';
child = window.open('child.htm', 'child', 'width=300, height=200, scrollbars=yes');
child.opener = self;
}
else
if ( !child.closed )
{
document.body.innerHTML += '!child.closed<BR>';
child.document.body.innerHTML += 'hey! I found you!<BR>';
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE=button VALUE='Open child Window' ONCLICK='openChild()'>
<BR>
</BODY>
</HTML>
<!----------parent.htm end---------->
二、子窗口child.htm代码:
<!----------child.htm begin---------->
<HTML>
<HEAD>
<TITLE>child</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
</HEAD>
<BODY>
<BR>I'm child window<BR>
</BODY>
</HTML>
<!----------child.htm end---------->
禽兽v5
2003-04-30
打赏
举报
回复
并未覆盖
程序流程如下:
1. 主窗口
1.1 根据 hasChild 标志判断是否开启了名字为child的子窗口
1.2 如果hasChild == true,表示已经开启,则在子窗口中写一行字.
1.3 如果hasChild == false,表示未开启,则新开一个名字为child的子窗口.并输入需要的数据.
2. 子窗口
2.1 设定onload事件,当子窗口加载时,设定主窗口的hasChild为true,意即告诉主窗口 “俺在,请不要克隆俺.”
2.2 设定unload事件,当子窗口刷新或者是关闭时,设定主窗口的hasChild为false,意即告诉主窗口 “俺即将重生或者翘翘,有空可以重新call我出来”.
另:在子窗口中的 if ( !opener.cosed ) 表示检测主窗口是否已经关闭.如果主窗口已经关闭,子窗口就没有必要向主窗口汇报当前动向.
禽兽v5
2003-04-30
打赏
举报
回复
刚才才看到你的回复.等我10分钟.
在原来的基础上再稍微修改一下就好了.
禽兽v5
2003-04-29
打赏
举报
回复
不好意思,少了顶部的三行:
<HTML>
<HEAD>
<TITLE>parent</TITLE>
禽兽v5
2003-04-29
打赏
举报
回复
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<SCRIPT>
<!--
self.resizeTo(300, 300);
self.moveTo(0, 200);
var hasChild = false;
var child = null;
function openChild()
{
if ( hasChild )
{
child.document.body.innerHTML += 'hey! I found you!<BR>';
}
else
{
child = window.open('', 'child', 'width=300, height=200, scrollbars=no');
child.opener = self;
child.document.writeln('<HTML>');
child.document.writeln('<HEAD>');
child.document.writeln('<TITLE>child</TITLE>');
child.document.writeln('<SCRIPT>');
child.document.writeln('self.moveTo(400, 200);');
child.document.writeln('');
child.document.writeln('window.onload =');
child.document.writeln(' function load()');
child.document.writeln(' {');
child.document.writeln(' if ( !opener.closed )');
child.document.writeln(' {');
child.document.writeln(' opener.hasChild = true;');
child.document.writeln(' }');
child.document.writeln(' }');
child.document.writeln('');
child.document.writeln('window.onunload =');
child.document.writeln(' function unload()');
child.document.writeln(' {');
child.document.writeln(' if ( !opener.closed )');
child.document.writeln(' {');
child.document.writeln(' opener.hasChild = false;');
child.document.writeln(' }');
child.document.writeln(' }');
child.document.writeln('</SCRIPT>');
child.document.writeln('</HEAD>');
child.document.writeln('<BODY>');
child.document.writeln('</BODY>');
child.document.writeln('</HTML>');
child.document.close();
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE=button VALUE='Open child Window' ONCLICK='openChild()'>
</BODY>
</HTML>
Hodex
2003-04-29
打赏
举报
回复
好难
zhiin1
2003-04-29
打赏
举报
回复
这儿不是有很多高手吗? 怎么没人会啊?~```
如果谁回答出来 分不够我另外再加 绝不食言!!!!!!!
zhiin1
2003-04-28
打赏
举报
回复
呜呜 怎么没人解答啊?~````
难道这个问题真的很难吗?~``
请各位高手(阿信,孟子E章,....)赐教啊~~~~
Estyle
2003-04-26
打赏
举报
回复
这个我就不清楚了,呵呵.因为我不知道如何历遍当前打开的所有窗口!
假如能够历遍的话,那么判断是否有newwindow很简单了.
这时,myweb.htm可以这样.
如果不存在,给自己返回一个值很简单嘛.
如果存在,要给a.htm返回值,你只需要在myweb.htm里面:
window.opener=a.htm的窗口名
然后再用opener传值给a.htm就可以了!
关键部分没有搞定,说了等于白说.我们两个一起等待高手赐教!
zhiin1
2003-04-26
打赏
举报
回复
不是楼上兄弟的这个意思~
我的意思是:
比仿你打开一个myweb.htm的页子,
并且你同时也打开其它几个页子
那么a.htm将会判断:
如果当前存在窗口名称为newwindow的叶子,则a.htm中有一个值返回1
如果不存在,则myweb.htm中有一个值返回0
请问我如何编写myweb.htm这个页子??
Estyle
2003-04-26
打赏
举报
回复
可以用window.name判断!
但是我不是很明白你的问题的意思!
给你举一个例子:
<a href=# target="newwindow">Click</a>
点击它弹出一个新窗口,窗口名为newwindow.
这时,你可以用alert(window.name)得到newwindow这个值!
...说不清楚好象,你到底要问什么?
HTML
target
属性原理与工程实践:浏览上下文控制详解
本文深入解析HTML中
target
属性的核心机制,聚焦其对浏览上下文(Browsing Context)的精确控制能力。详细阐述顶级、嵌套、辅助及命名四种上下文形态,剖析_self、_blank、_parent、_top四大预定义值的底层行为差异与安全约束(如rel="noopener noreferrer"的必要性)。涵盖iframe导航、SPA伪多页实现、跨域限制、SEO影响及CI/CD自动化校验等工程实践,强调
target
在Web架构中对安全性、用户体验和可维护性的关键作用。
Robot Framework与Web界面自动化测试学习笔记:定位到新
窗口
本文介绍了如何使用Selenium2的select
window
关键字在页面操作中定位并操作通过
window
.open或
target='_blank'>新
窗口
打开
的页面。包括通过新
窗口
的title或name属性进行定位,以及为每个页面设置独特的title属性以避免混淆。同时,文章指出通过URL定位新
窗口
的方法存在bug。
UE4/UE5项目设置
窗口
全局置顶插件开发实战
本文详细阐述了在虚幻引擎UE4/UE5中开发C++编辑器插件,实现项目设置
窗口
全局置顶功能的完整流程。涵盖需求分析、方案选型(聚焦编辑器插件路径)、插件创建、
Window
s平台原生
窗口
句柄获取与Set
Window
Pos置顶逻辑实现、跨平台注意事项、状态开关、现有
窗口
遍历、配置持久化,以及Slate
窗口
系统与原生API交互原理。核心涉及虚幻编辑器扩展、Slate框架、HWND操作和编辑器模块集成。
使用
window
.open提交form表单
本文将介绍如何利用JavaScript中的
Window
.open方法创建代理
窗口
,实现从父页面提交表单数据到新
打开
的固定页面的功能。通过设置
窗口
名称
、大小、属性等参数,可以灵活控制新
窗口
的呈现方式。
昨天到今天上午 实现
window
.open 函数 传值 总结如下
本文详细介绍了JavaScript中的
window
.open方法,包括其参数说明如URL、
窗口
名称
及特性等,并提供了具体的使用示例,展示了如何在父
窗口
与子
窗口
间传递数据。
JavaScript
87,987
社区成员
224,683
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章