因此,对于这个项目,我面临一些问题。
概述:我向客户发送指向网页的链接。在该网页上,我需要以方便的方式向我的用户显示信息(名字,姓氏,dob等),这些信息将被复制并粘贴到第三方页面中。我原本想使用iFrame并在一个页面上显示信息和第三方网站,但第三方已阻止iFrame。我的下一个解决方案是制作2个弹出窗口,启动网页的加载,一个是屏幕顶部的薄水平信息,需要的信息,第二个用第三方网站填充页面的其余部分。当其中一个子窗口关闭时,我需要的下一个功能是太靠近3页(登陆页面,信息窗口和第三方站点)。
我已经准确了解了我想在Chrome中使用的内容,但问题是我需要在Internet Explorer中工作。在Chrome中,网页会自动启动两个弹出窗口,当其中一个窗口关闭时,所有三个窗口都会关闭。在IE中弹出两个网页,然后它们会在几秒钟内自动退出和关闭。
这是我的代码:
<!DOCTYPE html>
<html>
<meta charset="ISO-8859-1">
<button onclick="closeWin()"> Close</button>
<body onload="infoPopup()">
</body>
<script>
var myWindow;
var myWindowB;
function infoPopup(){
var windowDimensions = ("scrollbars=1,width="+(screen.width-10)+",height=150");
myWindow = window.open("", "MsgWindow", windowDimensions);
myWindow.moveTo(0,0);
myWindow.location="https://google.com"
var myWindowBDimensions = ("scrollbars=1,width="+(screen.width-10)+",height="+(screen.height-250));
myWindowB = window.open("", "myWindowB", myWindowBDimensions);
myWindowB.moveBy(0,150);
myWindowB.location="https://wikipedia.org";
var timer = setInterval(checkChild, 500);
function checkChild() {
if (myWindow.closed||myWindowB.closed) {
closeWin();
clearInterval(timer);
}
}
}
function closeWin(){
myWindow.close();
myWindowB.close();
window.close();
}
</script>
</html>
我假设问题在于
if (myWindow.closed||myWindowB.closed)
也许IE没有正确阅读这些条件?
我知道弹出窗口经常不受欢迎,控制网页应留给用户使用,但对于这个项目来说,这只是一个小过程,需要快速完成和关闭。任何有关其他替代方案的帮助或建议都非常感谢!
答案 0 :(得分:0)
根据this bug report,这似乎是Internet Explorer 9中的一个已知错误。
您可能能够使用window.onunload()或window.unbeforeunload()来解决一些棘手的问题,类似于Microsoft在父窗口中保留布尔值的解决方法,然后是onunload(),将bool设置为false。 / p>
var childLoaded = true;
myWindowB.addEventListener("unload", function(){childLoaded=false;});