我很困惑,我怎么能为此提供解决方案。我有一个要求,就像我的页面中有一个链接(父页面),点击该链接将打开一个新窗口(子页面),其中包含一些细节,然后如果我点击父窗口,子窗口必须关闭。我怎样才能做到这一点。这是我试过的。
<script type="text/javascript">
function OpenWindow() {
popupWindow = window.open('WebForm2.aspx', 'popUpWindow', 'height=500,width=400,left=100,top=100,resizable=yes,scrollbars=yes')
}
function closeWindow() {
popupWindow.close();
}
</script>
<div id="daf" style="height: 100vh;" onclick="closeWindow()">
<a id="myLink" title="Click to do something" href="" onclick="OpenWindow();return false;">link text</a>
</div>
但我面临的问题是,当我点击链接窗口打开时,它立即关闭。这是因为div内部的链接。因此,单击该链接将触发这两个功能。请帮我解决问题
谢谢大家!我从Niko那里得到了解决方案。这是我在寻找的东西
<div id="Div1" style="height: 100vh;" onclick="closeWindow()">
<a id="A1" href="#" onclick="OpenWindow(true)">link dtext</a>
</div>
<script type="text/javascript">
var firstTime = false; // make use of temp variable
function OpenWindow(k) {
firstTime = k;
popupWindow = window.open('WebForm2.aspx', 'popUpWindow', 'height=500,width=400,left=100,top=100,resizable=yes,scrollbars=yes')
}
function closeWindow() {
if (firstTime == false) popupWindow.close();
firstTime = false;
}
</script>
答案 0 :(得分:1)
我不确定你是否想要这个,但是使用临时变量检查一下,你可以做到这一点。
在函数调用openWindow(true)
中传递true值并使用firstTime
变量是我所做的更改。
<script type="text/javascript">
var firstTime = false; // make use of temp variable
function OpenWindow(k) {
firstTime = k;
popupWindow = window.open('WebForm2.aspx', 'popUpWindow', 'height=500,width=400,left=100,top=100,resizable=yes,scrollbars=yes')
}
function closeWindow(){
if(firstTime == false) popupWindow.close();
firstTime=false;
}
</script>
<div id="daf" style="height: 100vh;" onclick="closeWindow()">
<a id="myLink" href="#" onclick="OpenWindow(true)">link text</a>
</div>
单击firstTime
时将link text
变量设置为true,关闭窗口时,比较该值并将其更改为false,以便下次单击。
答案 1 :(得分:0)
删除内联脚本:
<div id="daf" style="height: 100vh;">
并使用(内部文档就绪处理程序?):
$('#daf').click(function(e){
if(e.target.id === "myLink") return;
closeWindow();
});