Javascript window.open在提交事件时从浏览器请求弹出权限

Javascript window.open在提交事件时从浏览器请求弹出权限,javascript,php,jquery,Javascript,Php,Jquery,我正在做一个项目。我面临的问题是,当用户提交id和密码并单击“提交”时,我将用户签入数据库,当匹配时,我将逐个窗口打开一个新窗口。打开脚本,但它总是请求浏览器允许打开弹出窗口。 我只想在没有弹出浏览器权限的情况下打开新窗口 这是我的提交按钮 <input type="submit" name="submit" value="Sign In" class="login_button" style="border:none; background:none; font-size:14px

我正在做一个项目。我面临的问题是,当用户提交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.";
} 
?>

var h=屏幕高度;
var w=屏幕宽度;
window.open(“,”newwin“,”高度=”+h+'px,宽度=“+w+'px”)

您必须启用弹出窗口,因为window.open会打开一个弹出窗口。

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.";
} 
?>

var h=屏幕高度;
var w=屏幕宽度;
document.getElementById('test-ak')。单击();//如果你不在乎窗户的大小,就试试这样

如果用户单击未生成打开弹出窗口请求,浏览器将始终请求浏览器允许打开弹出窗口

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

  • 使用同步ajax调用将用户签入数据库,并在相同的调用中打开ajax成功弹出窗口

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


  • 我猜这是一种安全功能,你不能禁用它使用
    \u blank
    而不是
    newwin
    ,因此它会打开一个新选项卡,而不是一个不需要特殊权限的新窗口。与其尝试禁用浏览器保护,为什么不使用AJAX调用PHP并在模式窗口中显示响应呢?但这是从用户角度出发的。在制作任何程序时,在用户计算机上启用/禁用某些功能都是无用的,因为你不能在世界上所有的计算机上都这样做。你必须至少在你配置或引导他们的系统上这样做。很长一段时间以来,我的应用程序都存在这个问题,我还想知道是否还有其他解决方法我会迁移到另一个类似的站点我已经这样做了,但这不是一个解决方案。新窗口在onclick事件中未经任何许可打开,但我没有使用on click事件首先我检查用户访问权限,然后我打开一个窗口,因此它不是一个click事件。。