问题标签 [mutation-events]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 检测具有特定 ID 的元素何时插入 DOM 的最有效方法是什么
正如标题所示,当具有特定 id 或 CSS 类的元素插入 DOM 时,我想检测确切的时间戳(并可能检测它何时被删除)。最明显的方法是定期轮询文档,通过调用document.getElementById
我要查找的元素的 id,但这种方法不是很准确,如果我有多个要检测的元素,可能会非常消耗性能。
我查看了Mutation Events和Mutation Observers,但据我了解,为了检测元素是否被插入或删除,我必须向根 DOM 元素添加一个侦听器,如果需要,这会严重影响性能每次从页面插入或删除元素时执行额外的 JS。
是否有我不知道的更优化的解决方案?另外,如果我不使用外部 JS 库,甚至是 jQuery,我会更喜欢。
javascript - DOMNodeInserted is posible to mark added elements?
I'm using DOMNodeInserted
MutationEvent, is any way to select only new inserted elements by using this event?
I have to add class to all inputs when they are inserted to document.
I'm inserting new inputs to form via AJAX request but I can't add it there because this part have to work independently.
javascript - removeEventListener 在 IE10 中不起作用,在 Chrome 中起作用
我正在尝试创建一个迷你库,MutationObserver
用于检测 DOM 中的变化,但也可以回退到旧浏览器中的基本突变事件。到目前为止一切顺利,它在 Chrome 和 Firefox 中都能正常工作,我也在这些浏览器中测试了后备 - 一切正常,但是当我测试 IE 10 时,它的行为有所不同(多么出乎意料......)
在这个库中,您可以简单地调用:
callback 获取一个参数 - 具有断开连接和观察方法的观察者,因此您可以在对节点进行一些更改时停止观察节点,然后再次开始观察。
在后备中,我使用突变事件并添加/删除事件侦听器。我认为问题在于,在 IE 中,事件并没有真正被删除,它陷入了无限循环(我的代码在其中,setTimeout
所以它不会让你的浏览器崩溃)。出于某种原因,它可能认为这this.realCallback
是不同的功能?
我只用有问题的代码创建了一个迷你小提琴,尝试在 Chrome 中运行它,然后在 IE10 中运行它:http: //jsfiddle.net/Hb45w/2/
(完整库小提琴:http: //jsfiddle.net/x6W3p/)
jquery - 使用 DOMSubtreeModified 突变事件。在 jQuery 中
我在我的页面上使用了以下 jQuery 代码,并且在 chrome 上一切正常。但是当我在 Firefox 中打开相应的页面时,我得到了无响应的脚本错误。
我知道根据 DOM3 规范,突变事件已被弃用。但是,如果有人可以在这里帮助我,我将不胜感激。
相应的 HTML 是:
javascript - Mutation Observer 无法检测到元素的 dom 移除
所以,我认为这会很简单,曾经有一个DOMNodeRemoved
事件,但不推荐使用,相反,应该使用MutationObserver ,问题是,即使配置适当,它也不会触发。
根据这篇关于从变异事件迁移到变异观察者的文章,检测节点的 dom 移除的{ childList: true, subtree: true }
配置childList
是到mdn 文章。subtree
无论如何,我已经解决了这个问题,它非常简单,<button>
删除<div>
并且观察者应该记录突变记录,但它没有,看看你是否能弄清楚:)
HTML
JavaScript
谢谢!
javascript - 如何在javascript中删除突变记录对象
我正在观察一个 Div 元素的变化,该元素被带有 ajax 调用的子 div 填充。我的目标是在观察到的 Record 对象中进行一些检查并过滤其中的一些。如何从观察到的突变列表中删除/删除/过滤这些突变记录?并使它们在网页中过滤。
我试图从突变列表中删除突变记录,但没有奏效。谢谢你的帮助。
javascript - 在插入 DOM 之前更改元素的 HTML
是否可以在将元素插入 DOM 之前更改元素的内部 HTML?我已经尝试使用MutationObserver执行此操作,但问题是您可以看到元素的 HTML 在视觉上发生变化,有没有办法在完全插入 DOM 之前执行此操作?
javascript - DOMNodeInserted 和 DOMNodeRemoved 事件
下面的代码工作正常,除了计数器。当我将一个项目添加到列表中时,计数器是准确的,但是当我从列表中删除一个项目时,它不会从计数器中减去一个。有任何想法吗?
HTML
JavaScript
javascript - 是否可以安全地将 javascript 代码发送到用户的浏览器?
是否可以将 javascript 代码发送到客户端,并将信息发送回服务器,而用户无法拦截、查看或更改它。据我所知,这是不可能的,但我不确定某些实时协议,如 socket/ajax。有人可以拦截网络套接字吗?
如果这是不可能的,是否有一个聪明的解决方案来验证代码没有被改变,或者至少让代码更难被改变?也许是 Dom 突变事件?混淆代码/数据的某些敏感部分怎么样?
即:谷歌分析如何知道给定用户没有创建虚假数据?
javascript - 有一个元素的引用,如何检测它何时附加到文档中?
我正在开发一个 JavaScript 模块,它对将在其中使用它的环境一无所知。
而且,从技术上讲,我想实现下一个功能:
element
是一个HTMLElement
并且这个元素的父元素在模块初始化期间可能是未知的。是一个函数,一旦出现在页面上就callback
必须触发。element
如果元素附加到文档,则必须立即调用回调。如果element
尚未附加,则功能将在文档上出现时callback
触发。element
问题是,我们可以element
使用DOMNodeInserted
突变事件来检测附加事件。但突变事件现在已被弃用。而且似乎MutationObserver
无法处理这个任务,可以吗?
这是我的代码片段: