js 弹窗 堆叠层 百度文本编辑器遮挡弹出层

JavaScript022

js 弹窗 堆叠层 百度文本编辑器遮挡弹出层,第1张

divWindow.js里面的方法

DivWindow.prototype.popupShow=function(){

var element=document.getElementById(this.popup)

element.style.position = "absolute"

element.style.visibility = "visible"

element.style.display= "block"

element.style.width=this.width

element.style.height='auto'

//element.style.height=this.height

element.style.left = 100+"px"

element.style.top =100+"px"

//element.style.top =150+"px"

element.style.zIndex= 9999//主要更改地方

}

ps:z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。之前是因为你的z-index比umeditor里面的div的z-index的值小

出现js堆栈溢出的问题一般的情况有两种:

1、检查自己的js代码看代码中有没有死循环。

2、代码中引用了jQuery-1.4.2.min.js这个js实现一些动态效果或者是辅助,这个版本的jQuery就存在这样的问题(同事就是遇到了这个问题)。

3、解决方案:

4、查询自己的代码,用ie8、ie9自带的js调试工具跟一遍代码看哪里出现了问题。

5、更换jQuery引用版本。

node 事件循环见: https://www.jianshu.com/p/69d2b70d3163 。

参考: https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/?utm_source=html5weekly

we don't add another mutation microtask as one is already pending

三个概念: JS堆栈、宏任务、微任务。

js 是一个单线程语言。

在执行一个js文件的过程中, js堆栈 中一直有任务,执行过程中,如果碰到了 宏任务 或者 微任务 ,会将其分别放入 宏任务队列 微任务队列 中。

当js文件被执行完, js堆栈 为空,此时执行 微任务队列 中的所有任务。当执行 微任务 过程中碰到 宏任务 或者 微任务 ,同样会将其分别放入 宏任务队列 微任务队列 中。

微任务队列 为空,此时执行 宏任务队列 中的所有任务。在执行过程中

宏任务按顺序执行,且浏览器在每个宏任务之间渲染页面

所有微任务也按顺序执行,且在以下场景会立即执行所有微任务:

例子:

执行结果:(Chrome 89)