Javascript 检查弹出窗口状态
当有人请求聊天时,会在数据库中输入一个条目。我在我们的仪表板上有一个隐藏的iframe,它每20秒检查一次数据库,看看是否有聊天,如果有,就会启动一个弹出窗口。即使弹出窗口打开,iframe仍会每隔20秒刷新弹出窗口。我想尝试实现的是一个javascript来检查弹出窗口的状态。如果它是关闭的,我希望它重新打开它。。。如果它是开放的,那么它将使它成为焦点。。。但是我不希望弹出窗口刷新。。因为我有一个ajax脚本来做这件事 这是我的密码:Javascript 检查弹出窗口状态,javascript,Javascript,当有人请求聊天时,会在数据库中输入一个条目。我在我们的仪表板上有一个隐藏的iframe,它每20秒检查一次数据库,看看是否有聊天,如果有,就会启动一个弹出窗口。即使弹出窗口打开,iframe仍会每隔20秒刷新弹出窗口。我想尝试实现的是一个javascript来检查弹出窗口的状态。如果它是关闭的,我希望它重新打开它。。。如果它是开放的,那么它将使它成为焦点。。。但是我不希望弹出窗口刷新。。因为我有一个ajax脚本来做这件事 这是我的密码: <script language="javascri
<script language="javascript" type="text/javascript">
function myOpenWindow(winURL, winName, winFeatures, winObj)
{
var theWin;
if (winObj != null)
{
if (!winObj.closed)
{
winObj.focus();
return winObj;
}
}
else
{
theWin = window.open(winURL, winName, winFeatures);
return theWin;
}
}
</script>
<% IF ChatSessionID <> "" THEN %>
<script language="javascript" type="text/javascript">
var gmyWin = null;
window.onload = function()
{
var w = 900;
var h = 500;
var l = (screen.width-w)/2;
var t = (screen.height-h)/2;
var params = 'status=0,resizable=0,scrollbars=0,width=' + w + ',height=' + h + ',left=' + l + ',top=' + t;
gmyWin = myOpenWindow("/chat/chat_window.asp?ChatSession=<%=ChatSessionID%>&id=3", "myWin", params, gmyWin)
}
</script>
<% END IF %>
函数myOpenWindow(winURL、winName、winFeatures、winObj)
{
瓦尔·特温;
if(winObj!=null)
{
如果(!winObj.closed)
{
winObj.focus();
返回winObj;
}
}
其他的
{
theWin=window.open(winURL、winName、winFeatures);
回报胜利;
}
}
var gmyWin=null;
window.onload=函数()
{
var w=900;
var h=500;
变量l=(屏幕宽度-w)/2;
变量t=(屏幕高度-h)/2;
变量参数='状态=0,可调整大小=0,滚动条=0,宽度='+w+',高度='+h+',左侧='+l+',顶部='+t;
gmyWin=myOpenWindow(“/chat/chat_window.asp?ChatSession=&id=3”,“myWin”,params,gmyWin)
}
如果您能提供任何帮助,我们将不胜感激
致以最良好的祝愿,
Paul在
gmyWin.onunload
上注册回调我不确定,但我相信如果您在调用window.open时命名窗口(例如,myWin
),然后再次使用相同的名称调用window.open,如果已经打开或打开/重新打开窗口,它将返回现有窗口,并返回该窗口的句柄
编辑
啊,你看,从:
如果有一个窗口名为
strWindowName已经存在,那么,
而不是打开一个新窗口,
strUrl被加载到现有的
窗户。在本例中,返回值
该方法的一部分是现有窗口
并忽略strWindowFeatures。
为strUrl提供空字符串
是获取对开放式数据库的引用的一种方法
不更改窗口名称的窗口
窗口的位置。如果你想
在每次呼叫时打开一个新窗口
window.open(),则应使用
特殊值(为空)
strWindowName
我相信根据上述规范,这可能会起作用:
,。您会发现在大多数浏览器中颠覆“阻止弹出窗口”是很棘手的。但是,如果它被禁用,以下操作将起作用 主窗口:
var status = false;
function winOpen(){
window.open("child.html");
}
function winStatus(){
alert(status);
}
弹出窗口:
window.opener.status = true;
window.onblur = window.focus;
window.onunload = function(){
window.opener.status = false;
};
是一个非标准属性,可能适用于所有浏览器,也可能不适用于所有浏览器。看起来符合逻辑。。这将如何适应我现有的框架。。?由于我的javascript知识有点不稳定,我添加了一个演示。看看你是否能按照你的需要去工作。”阿维拉尔:对不起,伙计,我在编辑我的帖子的时候被吓坏了。我已经再次将url添加到window.open文档中。这个方法经过一点实验后就成功了。我必须把主脚本放在父窗口中,以确保它正常工作。。。非常感谢你的帮助。。给你一个!
window.opener.status = true;
window.onblur = window.focus;
window.onunload = function(){
window.opener.status = false;
};