我有一个脚本,它将“重命名”并重新启用我故意破坏的某个DOM元素
<button id="mypxlbtn" onclick="myPXFDFunction()">Pixelfed</button>
<script>
function myPXFDFunction() {
document.body.innerHTML = document.body.innerHTML.replace('pixlframe', 'iframe');
document.getElementById('mypxlbtn').style.visibility = 'hidden';
}
</script>
<pixlframe src="https://pixelfed.de/aoikurayami/embed" width="80%" height="800" scrolling="yes" frameborder="0"></pixlframe>
然而,“隐藏按钮”JavaScript动作在重命名操作之前或至少在重命名操作中间触发。据我所知,这应该是两个异步命令。
那么,为什么这根本无法实现预期的效果呢?
预期“按顺序执行”的已执行js,但第二个函数比预期提前触发
1条答案
按热度按时间u2nhd7ah1#
设置innerHTML将导致整个正文被重建。您在JavaScript中添加到元素的任何事件侦听器都将丢失。
在任何情况下,解决方案都是仅通过操作元素(而不是更改html)进行更改,或者为要应用的样式添加超时