我们可以禁止点击任何 window 吗?
Can we disable the click on any window?
我有一个 php 页面,其中有一个名为 "info" 的按钮。单击此按钮,我得到一个新的 window。关于这个小 window 的出现,我想禁用我的第一个 window.Is 的所有操作或点击可能吗?
我的代码是:
parent.php:
<form method="GET" name="myform" >
<td><input type="radio" name="radioEdit" value="<?php echo $id; ?>" /><?= $id; ?></td>
<input type="submit" value="info" formaction="edit.php" onclick="target_popup(myform,'edit.php')"/>
</form>
<script>
function target_popup(form,page)
{
window.open(page, 'formpopup', 'left=100,top=100,width=600,height=400,menubar,toolbar,resizable');
form.target = 'formpopup';
}
</script>
edit.php:
<?php
if(isset($_GET['radioEdit']))
{
$n=$_GET['radioEdit'];
echo"n=$n";
}
else
{
echo"fail";
?>
点击信息按钮后,这个新的 window 出现了,我可以禁用 parent.php 直到新的 window 关闭吗?请帮忙。
我不确定这是否是最优雅的答案,但您可以在母版页中设置一个变量,当单击此信息按钮时,切换此变量,并在切换时禁用所有功能这一页。它不会在物理上阻止用户切换回 window,但会阻止他们使用任何东西,直到他们在弹出窗口中完成所需的操作。
这是 jquery 弹出窗口
一个 transparent div 出现在弹出消息显示之后,并且 div 禁用那里的所有点击事件,因为点击事件仅适用于弹出 window。我想这会对你有所帮助:)
<div class="disableRightClick">
</div>
https://jsfiddle.net/kokilajs/w99Mj/64/
============================================= =================
已更新:以下代码用于 window.open(url) 弹出窗口
为了检查这个解决方案,使用没有服务器 chrome 的 server[localhost] 无效,但 FF 可能有效
parent window
<style type="text/css">
#disableRightClick{
position: absolute;
min-width:100%;
min-height:100%;
background-color:rgba(1,1,1,0.4);
z-index:99;
display: none;
}
body,html{
margin:0;
padding: 0;
}
</style>
<div id="disableRightClick"></div>
<a href="http://google.com">go to google</a>
<form method="GET" name="myform" >
<td><input type="radio" name="radioEdit" value="<?php echo $id; ?>" /><?= $id; ?></td>
<input type="submit" value="info" formaction="pop.html" onclick="target_popup(myform,'pop.html')"/>
</form>
<script>
var dis = $('#disableRightClick').on("contextmenu",function(e){
alert('click disabled');
return false;
});
dis.on("click",function(e){
alert('click disabled');
return false;
});
function target_popup(form,page)
{
var new_window = window.open(page, 'formpopup', 'left=100,top=100,width=600,height=400,menubar,toolbar,resizable');
form.target = 'formpopup';
new_window.onload = click_disable;
function click_disable() {
window.document.getElementById('disableRightClick').style.display = 'block';
}
}
</script>
弹出window(edit.php)
popup window test msg
<script>
window.onbeforeunload = disableparent;
function disableparent() {
window.opener.document.getElementById('disableRightClick').style.display = 'none';
}
</script>
我有一个 php 页面,其中有一个名为 "info" 的按钮。单击此按钮,我得到一个新的 window。关于这个小 window 的出现,我想禁用我的第一个 window.Is 的所有操作或点击可能吗?
我的代码是: parent.php:
<form method="GET" name="myform" >
<td><input type="radio" name="radioEdit" value="<?php echo $id; ?>" /><?= $id; ?></td>
<input type="submit" value="info" formaction="edit.php" onclick="target_popup(myform,'edit.php')"/>
</form>
<script>
function target_popup(form,page)
{
window.open(page, 'formpopup', 'left=100,top=100,width=600,height=400,menubar,toolbar,resizable');
form.target = 'formpopup';
}
</script>
edit.php:
<?php
if(isset($_GET['radioEdit']))
{
$n=$_GET['radioEdit'];
echo"n=$n";
}
else
{
echo"fail";
?>
点击信息按钮后,这个新的 window 出现了,我可以禁用 parent.php 直到新的 window 关闭吗?请帮忙。
我不确定这是否是最优雅的答案,但您可以在母版页中设置一个变量,当单击此信息按钮时,切换此变量,并在切换时禁用所有功能这一页。它不会在物理上阻止用户切换回 window,但会阻止他们使用任何东西,直到他们在弹出窗口中完成所需的操作。
这是 jquery 弹出窗口
一个 transparent div 出现在弹出消息显示之后,并且 div 禁用那里的所有点击事件,因为点击事件仅适用于弹出 window。我想这会对你有所帮助:)
<div class="disableRightClick">
</div>
https://jsfiddle.net/kokilajs/w99Mj/64/
============================================= =================
已更新:以下代码用于 window.open(url) 弹出窗口
为了检查这个解决方案,使用没有服务器 chrome 的 server[localhost] 无效,但 FF 可能有效
parent window
<style type="text/css">
#disableRightClick{
position: absolute;
min-width:100%;
min-height:100%;
background-color:rgba(1,1,1,0.4);
z-index:99;
display: none;
}
body,html{
margin:0;
padding: 0;
}
</style>
<div id="disableRightClick"></div>
<a href="http://google.com">go to google</a>
<form method="GET" name="myform" >
<td><input type="radio" name="radioEdit" value="<?php echo $id; ?>" /><?= $id; ?></td>
<input type="submit" value="info" formaction="pop.html" onclick="target_popup(myform,'pop.html')"/>
</form>
<script>
var dis = $('#disableRightClick').on("contextmenu",function(e){
alert('click disabled');
return false;
});
dis.on("click",function(e){
alert('click disabled');
return false;
});
function target_popup(form,page)
{
var new_window = window.open(page, 'formpopup', 'left=100,top=100,width=600,height=400,menubar,toolbar,resizable');
form.target = 'formpopup';
new_window.onload = click_disable;
function click_disable() {
window.document.getElementById('disableRightClick').style.display = 'block';
}
}
</script>
弹出window(edit.php)
popup window test msg
<script>
window.onbeforeunload = disableparent;
function disableparent() {
window.opener.document.getElementById('disableRightClick').style.display = 'none';
}
</script>