当关闭叠加的DOM元素后,某些浏览器(Chrome,IE)会立即单击链接时会暂时阻止链接导航。关闭叠加DOM元素后,导致链接导航暂时无法运行
例如,当你有以下的HTML(见https://jsfiddle.net/robbertbrak/emumnjpg/):
#popover-container {
position: fixed; left: 0; top: 0; width: 100%; height: 100%;
}
#popover {
border: 1px solid black;
width: 200px; height: 200px;
position: absolute; left: 200px; top: 200px;
}
和下面的JavaScript:
<a id='my-link' href="http://www.google.com" target="_blank">Go to Google</a>
<div id="popover-container">
<div id="popover">Click to close</div>
</div>
以下CSS到酥料饼的容器元素上放置链接:
var container = document.getElementById('popover-container');
var link = document.getElementById('my-link');
container.addEventListener('click', function() {
container.parentNode.removeChild(container);
});
link.addEventListener('click', function() {
var div = document.createElement('div');
div.textContent = 'clicked';
this.parentNode.appendChild(div);
});
重现如下:
- 在链接上快速连续点击两次(大约一秒内)。
- “clicked”一词出现在链接下。
- 浏览器确实不是打开一个新选项卡以导航到链接指向的URL。
请注意,当点击之间有足够的时间时,链接导航按预期工作。
另请注意,链接上的点击处理程序会按预期触发,这只是阻止的链接导航。
我的问题:为什么会发生这种行为?它是否记录在某处?
我想你错误地理解了我的问题。我知道'popover-container'最初覆盖了链接;这是触发我询问的行为的设置的必要部分。 – Rubrick