JS有一种方法可以打开窗口并立即关闭 ,无法在新标签中打开,我只想要打开一个窗口(如在后台,如果可能的话)做一些检查并立即关闭它,没有新标签打开的影响,是否可能?
这样的东西,但没有窗户打开的效果......
var popup = window.open("http://www.google.com");
popup.close();
更新 这是我找到的解决方案,但它有时会轻弹,我想避免它......
function goNewWin() {
var TheNewWin = window.open("http://www.yahoo.com", 'TheNewpop', 'toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1');
TheNewWin.blur();
TheNewWin.close();
}
答案 0 :(得分:1)
您的问题的解决方案是使用window.postMessage()
功能。 child
用于通知parent
窗口已加载,并且它也适用于cross domain
。
儿童强>
$(window).load(function(){
this.opener.postMessage({'loaded': true}, "*");
this.close();
});
<强>父强>
$(window).on('message', function(event) {
alert(event.originalEvent.data.loaded);
});
还有一个方法,如stackoverflow的thread中所述。
完全归因于此线程的堆栈溢出的作者
答案 1 :(得分:1)
即使您在close
之后立即致电window.open
,即使您尝试在屏幕外找到弹出窗口或使其大小为空,您也会看到它在屏幕上快速闪烁:
var popup = window.open("", "Popup", "left=10000,top=10000,width=0,height=0");
popup.close();
出于安全原因,window.open
无法将弹出窗口置于屏幕之外,并且不能使其小于某个最小尺寸。以下是MDN documentation中window.open
主题的摘录:
功能列表中请求的位置和请求的维度值 不会受到尊重,如果有任何要求,将予以纠正 value不允许在整个浏览器窗口中呈现 用户操作系统应用的工作区域。没有部分 新窗口的位置最初可以在屏幕外定位。这是 在所有基于Mozilla的浏览器版本中都是默认的。
类似的限制适用于Internet Explorer,如this document所示。 Internet Explorer的最小尺寸为250×150,Firefox的最小“内部”尺寸为100×100。
如果您绝对想要避开闪烁的弹出窗口,可以使用以下方法之一:
window.open
进行测试,而是在页面上显示警告,通知用户不应激活弹出窗口拦截器选项(如UncaAlby所建议的here)window.open
的替代方法,例如来自jQuery UI的dialog widget或来自Bootstrap的modals 答案 2 :(得分:1)
<html>
<head>
<script type= "text/javascript">
function closeWin() {
window.close();
return true;
}
</script>
</head>
<body onload="return closeWin();">
</body>
</html>
答案 3 :(得分:0)
//要打开弹出窗口的页面代码,它将在右下角打开小弹出窗口。
var popup = window.open("popup.html", "Popup", "height=1, width=1, status=no, toolbar=no, menubar=no, location=no, top = 100000, left=100000 ");
//在你的popup.html中添加以下代码
this.close();
答案 4 :(得分:0)
如何在当前窗口上动态创建iframe。 然后你可以在它上面打开任何页面,之后你可以随时销毁iframe元素。
答案 5 :(得分:0)
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
window.open("http://www.google.com");
}
</script>
这里你得到的答案是,它会在按钮上点击
打开页面新标签答案 6 :(得分:0)
如果您不希望用户知道您在某个网址上执行了某些操作,请使用AJAX调用和处理
或者你这样做
<script type="text/javascript">
var popup = window.open("http://www.exampleurl.com/popup.html", "Popup", "height=10, width=10, status=no, toolbar=no, menubar=no, location=no, top = 1, left=1");
</script>
在popup.html中,您可以编写代码来关闭它。
答案 7 :(得分:0)
此隐藏模式下的打开窗口。对用户不可见。 希望这可以帮助你
window.open(path.html,'_blank','toolbar=no,status=no,menubar=no,scrollbars
=no,resizable=no,left=10000, top=10000, width=10, height=10,visible=none', '');
答案 8 :(得分:0)
I don't think you can avoid the flicker of opening a new window completely. You could check for a pop-up and save the state in a cookie. Then wrap your pop-up checker in a simple if statement with the value of that cookie as the logic. This would avoid the pop-up checker going every single page load.
ABA
答案 9 :(得分:0)
我检查过的代码及其正常工作
var popup = window.open("test.php","event","width=900,height=900,scrollbars=no,resizable=yes");
popup.blur();
window.focus();
这将打开页面,但您看不到页面打开。