首页 > 解决方案 > Javascript弹出窗口 - 不在窗口中打开

问题描述

这适用于许多客户端计算机,但我有一个用户在一个完整的窗口中打开了这个弹出窗口并且没有在单独的窗口中打开......她使用的是最新的谷歌 Chrome 浏览器。我希望窗口单独打开。

HTML

 <a onclick='return PopWindow(this.href, this.target);' target='_blank' href='abc.php'>CLICK HERE</a>

然后是javascript...

JAVASCRIPT

 function PopWindow(url, win) 
 { 
 var w = window.open(url, win, "toolbar=no,scrollbars=no,resizable=no,width=300,height=425,top=50,left=50,location=no").focus();

 return false;
 }

任何想法这个窗口对某些人打开,但对其他人没有。似乎尺寸被忽略了......

标签: javascriptjqueryhtml

解决方案


这是一种规范的方式。您可能会发现它是客户端 PC 上的弹出窗口阻止程序 - 如果窗口未打开,焦点将失败,脚本也会失败。.focus 也可能因访问被拒绝而失败

function PopWindow(url, win) {
  var w = window.open(url, win, "width=300,height=425,top=50,left=50");
  if (w) {
    w.focus();
    return false;
  }
  return true; // _blank is used
}
<a onclick='return PopWindow(this.href, this.target);' target='_blank' href='abc.php'>CLICK HERE</a>

请注意,上面的代码段在这里不起作用,因为

阻止在新窗口中打开“ https://stacksnippets.net/abc.php ”,因为请求是在未设置“允许弹出窗口”权限的沙盒框架中发出的。


推荐阅读