【发布时间】:2018-02-28 21:52:50
【问题描述】:
我知道<a href="http://www.example.com" target="_blank">Click here</a> 在新选项卡中打开链接(Chrome 和 Firefox 中的默认行为)并且
<a href="http://www.example.com" onclick="window.open('http://www.example.com',
'newwindow', 'width=700,height=500'); return false;">Click here</a>
打开它in a new window。
但是如何在模式弹出窗口中打开外部页面(以屏幕为中心,原始页面的其余部分“变暗”)?
有什么好的方法吗?
我尝试了以下代码,但它似乎不起作用(单击:弹出窗口打开,重新单击,它关闭,重新单击链接:它不再打开。iframe 也没有加载)。
document.getElementById("a").onclick = function(e) {
e.preventDefault();
document.getElementById("popup").style.display = "block";
document.getElementById('iframe').src = "http://example.com";
document.getElementById('page').className = "darken";
setTimeout(function() {
document.getElementById('page').onclick = function() {
document.getElementById("popup").style.display = "none";
document.getElementById('page').className = "";
}
}, 100);
return false;
}
#popup {
display: none;
border: 1px black solid;
width: 400px; height: 200px;
top:20px; left:20px;
background-color: white;
z-index: 10;
padding: 2em;
position: fixed;
}
.darken { background: rgba(0, 0, 0, 0.7); }
#iframe { border: 0; }
html, body, #page { height: 100%; }
<div id="page">
<a href="" id="a">Click me</a><br>
Hello<br>
Hello<br>
<div id="popup">
External website:
<iframe id="iframe"></iframe>
</div>
</div>
【问题讨论】:
-
根本原因是page.onclick是第一次popup后注册,然后后面的'open popup'会连续触发a.onclick和page.onclick,导致popup被打开然后直接关闭。
-
@Sphinx 你能发布一个工作的sn-p吗?提前致谢。
标签: javascript html css iframe popup