gpt4 book ai didi

javascript - 子窗口打开后禁用链接,子窗口关闭后恢复

转载 作者:行者123 更新时间:2023-11-28 03:21:34 24 4
gpt4 key购买 nike

我的客户在他们的网站上有一个链接,可以在弹出窗口中打开一个客户服务聊天窗口。他们看到用户多次点击聊天链接,这会打开多个聊天 session ,并且会丢失他们的统计数据。我需要在聊天窗口打开时禁用链接,并在聊天窗口关闭时恢复它。我无法修改/访问子窗口。

原链接是这样的:

<a class="initChat" onclick="window.open('https://chatlinkhere.com','chatwindow','width=612,height=380,scrollbars=0'); return false;">

我认为最好的办法是将 window.open() 存储为函数中的变量:

function openChat() {
child = window.open('http://www.google.com', 'chatwindow', 'width=612,height=380,scrollbars=0,menubar=0');
}

并将链接 HTML 更改为

<a class="initChat" onclick="openChat();">

注意:理想情况下,我想检测原始的 onclick 值,并将其存储在一个变量中。像这样的东西:

  jQuery('.initChat').find().attr('onclick');

但我不确定如何存储它,然后再调用它。

接下来我需要运行检查以查看聊天窗口是否打开:

timer = setInterval(checkChild, 500);

function checkChild() {
if (child.open) {
alert("opened");
jQuery(".initChat").removeAttr("onclick");
jQuery(".initChat").css("opacity", ".5");
clearInterval(timer);
}

if (child.closed) {
alert("closed");
jQuery(".initChat").attr('onclick', 'openChat(); checkChild();');
jQuery(".initChat").css("opacity", "1.0");
clearInterval(timer);
}
}

注意:警报仅用于测试。

并将新函数添加到链接中

<a class="initChat" onclick="openChat(); checkChild();">

一旦聊天窗口关闭,我需要恢复链接的 onclick 属性(有更简单的方法吗?)

fiddle 演示在这里 -> http://jsfiddle.net/JkthJ/

当我检查 Chrome 控制台时出现错误未捕获的 TypeError:无法读取未定义的属性“打开”

更新谁给我留下了答案 http://jsfiddle.net/JkthJ/2/非常感谢它有效! :)

最佳答案

我想你需要的是打开弹出窗口,如果已经打开,那么专注于弹出窗口,否则什么都不应该发生

您可以将函数重写为

var winPop = false;  
function OpenWindow(url){
if(winPop && !winPop.closed){ //checks to see if window is open
winPop.focus(); // or nothing
}
else{
winPop = window.open(url,"winPop");
}
}

关于javascript - 子窗口打开后禁用链接,子窗口关闭后恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24206859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com