window.open在提交事件中询问浏览器的弹出权限

时间:2014-06-11 06:06:57

标签: javascript php jquery

我正在开展一个项目。我遇到一个问题,当用户提交他们的ID和密码并点击提交我检查用户进入数据库,当它匹配时,我通过window.open脚本打开一个新窗口,但它总是要求浏览器允许打开弹出窗口。 我只是想在没有弹出浏览器权限的情况下打开新窗口

这是我的提交按钮

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

3 个答案:

答案 0 :(得分:0)

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

  

1)用于铬镶嵌 - &gt;隐私 - &gt;内容设置检查允许   弹出。 2)用于IE工具 - &gt;隐私 - &gt;关闭弹出窗口拦截器

答案 1 :(得分:0)

希望这会有所帮助

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

答案 2 :(得分:0)

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

所以你有两个选项来避免这个弹出窗口阻止程序。

  1. 使用同步ajax调用将用户检入数据库,并在ajax成功打开窗口弹出窗口中进行相同调用。

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