窗口.打开请求从浏览器弹出提交事件的许可


window.open ask for popup permission from browser on submit event

我正在做一个项目。我面临的问题是,当用户提交他们的id和密码,点击提交我检查用户在数据库,当它匹配我打开一个新的窗口窗口。打开脚本,但它总是要求允许从浏览器打开弹出窗口。我只是想在没有弹出浏览器权限的情况下打开一个新窗口

这是我的提交按钮

<input type="submit" name="submit" value="Sign In" class="login_button"    style="border:none; background:none; font-size:14px; padding:0px; margin-top:5px; font-weight:bold; color:#fff" />   
<?php
if($user->login == 1){
     $this->loginUser($user);
?>
   <script> 
   var h = screen.height;
   var w = screen.width;
   window.open("<?php echo CreateURL('index.php',"mod=guidelines"); ?>", 'newwin', 'height='+h+'px,width='+w+'px')</script>
   <?php
}
else{
   $error .= "You are not authorized to login. Please contact system administrator.";
} 
?>

你将不得不启用弹出,因为窗口。打开打开一个弹出窗口。

1) chrome设置->隐私->内容设置检查允许弹出。2)设置IE工具->隐私->关闭弹出窗口拦截器

希望对您有所帮助

<?php
if($user->login == 1){
$this->loginUser($user);
?>
<!-- USE TARGET WHAT EVER YOU WANT -->
<a target="_parent" href="<?php echo CreateURL('index.php',"mod=guidelines"); ?>" id="test-ak">&nbsp;</a> 
<script> 
var h = screen.height;
var w = screen.width;
document.getElementById('test-ak').click(); // try something like that if you dont care about the window size
</script>
<?php
}
else{
   $error .= "You are not authorized to login. Please contact system administrator.";
} 
?>

如果用户点击没有生成打开弹出窗口的请求,浏览器将始终向浏览器请求打开弹出窗口的权限。

所以你有两个选择来避免这个弹出窗口拦截器。

  1. 检查用户在数据库使用同步ajax调用和在同一调用ajax成功打开窗口弹出。

  2. 从数据库中成功检查用户后,向用户显示某种类型的对话框,并要求用户单击某个按钮,然后在该按钮上单击编写打开窗口函数。