mutation-events相关内容

如何在不使用 DOM 突变事件的情况下检测 AJAX 节点插入?

我正在尝试编写一个 Greasemonkey 脚本来更改 Twitter 帖子中的关键字.问题是,内容“延迟加载"并应用户要求添加. 如果我向添加的元素添加事件侦听器,我可以使用 JQuery 的 delegate().因为我只是想在加载时更改内容,所以这似乎不合适. 突变事件似乎符合要求.它们是 Gecko 特有的,但这对于 Greasemonkey 脚本来说并不重要.问题是,它们已 ..
发布时间:2021-12-25 20:09:22 前端开发

替代 DOMNodeInserted

DOMNodeInserted 已知会使动态页面变慢,MDN 甚至建议不要完全使用它,但不提供任何替代方案. 我对插入的元素不感兴趣,我只需要知道某个脚本何时修改了 DOM.是否有更好的替代突变事件侦听器的方法(可能在 nsiTimer 中使用 getElementsByTagName)? 解决方案 如果您正在创建面向最新手机和较新版本浏览器(Firefox 5+、Chrome 4+ ..
发布时间:2021-12-18 14:06:22 前端开发

JQuery 或 vanilla Javascript 中的 DOM Mutation 事件

在 JQuery 或 vanilla Javascript 中是否有任何 DOM 突变事件会触发跨浏览器? 澄清一下,假设我的页面上有一个脚本,它在正文中插入了一个 div.我无权访问脚本,也不知道 div 何时插入.我想知道是否有我可以添加侦听器的 DOM 突变事件,以了解何时插入元素.我知道我可以使用计时器来定期检查插入,但是,我真的不喜欢这会带来的开销. 解决方案 这当然是一个 ..
发布时间:2021-12-18 13:43:46 前端开发

DOM 突变事件替换

由于 DOM 突变被 w3c 标记为已弃用(请参阅 http://www.w3.org/TR/DOM-Level-3-Events/#events-mutationevents),是否有(快速)替代方法来检测 DOM 中的属性修改?> 解决方案 据我所知,目前还没有替代方案,因此您只能使用 DOMAttrModified,它仅在 Firefox 和 Opera 中受支持.在 IE 中,您有 o ..
发布时间:2021-12-18 13:41:17 前端开发

检测/监控 DOM 变化的最有效方法?

我需要一种有效的机制来检测 DOM 的变化.最好是跨浏览器,但如果有任何不是跨浏览器的有效方法,我可以使用一种故障安全的跨浏览器方法来实现这些. 特别是,我需要检测会影响页面上文本的更改,因此需要任何新的、删除的或修改的元素,或者对内部文本 (innerHTML) 的更改. 我无法控制所做的更改(它们可能是由于 3rd 方 javascript 包含等造成的),因此无法从这个角度进行处 ..
发布时间:2021-12-18 13:27:19 前端开发

DOMNodeInserted 在 IE 中等效吗?

除了使用计时器来计算一段时间内的元素数量并寻找变化之外,我想不出更好的方法来模拟这个事件. 是否有某种专有的 IE 版本的 DOMNodeInserted?谢谢. 解决方案 不,没有.最接近的是 propertychange 事件,它响应元素的属性或 CSS 属性的更改而触发.它在响应直接更改元素的 innerHTML 属性时触发,但不会在元素的内容通过其他方式(例如,通过使用诸如 ..
发布时间:2021-12-18 12:05:10 前端开发

检测 DOM 中的变化

我想在将某些 div 或输入添加到 html 时执行一个函数.这可能吗? 比如添加了一个文本输入,那么应该调用该函数. 解决方案 2015 更新,新的 MutationObserver 被现代浏览器支持: Chrome 18+、Firefox 14+、IE 11+、Safari 6+ 如果您需要支持较旧的方法,您可以尝试使用其他方法,例如下面这个 5 (!) 岁的答案中提 ..
发布时间:2021-11-30 22:25:26 前端开发

可以在初始DOM解析期间/之前修改DOM吗?

是否可以在初始DOM解析期间或之前修改DOM?还是我必须等到DOM解析并构建之后再与之交互?更具体地说,是否有可能阻止DOM中的脚本元素使用用户脚本/内容脚本或chrome或firefox中的类似脚本运行? 解决方案 这是两个独立的问题: 1。 是的,是否可以在初始DOM解析期间或之前修改DOM?一旦浏览器构建了根元素,就可以开始查询和变异DOM。请注意,当脚本运行时,某些页面 ..
发布时间:2020-10-25 20:09:50 前端开发

我如何使用mutationobserver而不是突变事件?

我正在尝试用D3.js创建我的第一个流程图。我从一个工作示例开始,该示例包含来自在线发布的代码的工具提示, http:// bl。 ocks.org/WillTurman/4631136 : 当我复制 index.html 和数据时.csv 文件到我的电脑(Windows 7),我能够在浏览器(Firefox)中看到流图。但是,我得到一个JS警告,“不推荐使用Mutation事件。改为使用M ..

如何检查浏览器对功能/事件的支持?

过去,我们使用浏览器嗅探来推断某些事件或功能是否可用。我知道浏览器嗅探已被“弃用”或“避开”,以支持功能嗅探。我想知道如何检查是否可以处理某个事件。 以 DOMNodeInserted 为例。它受Chrome,FF和Safari的支持,但不受IE支持。如果此活动可用,我该如何嗅闻?有图书馆吗?你们怎么做适当的功能嗅探? 解决方案 你无法检测到突变事件,而且现代化不适用于此(因为人们会 ..
发布时间:2019-05-25 18:40:17 前端开发

如何在不使用DOM突变事件的情况下检测AJAX节点插入?

我正在尝试编写一个改变Twitter帖子中关键字的Greasemonkey脚本。麻烦的是,内容是“延迟加载”,并在用户请求时添加。 如果我在添加的元素中添加事件监听器,我可以使用JQuery的委托()。由于我只是想在加载时更改内容,这似乎不合适。 突变事件似乎符合要求。它们是Gecko特有的,但这对于Greasemonkey脚本来说并不重要。问题是,它们已被折旧和一组 ..
发布时间:2019-01-25 19:59:59 前端开发

如何在页面上加载时更改HTML内容

我在我们的网站上进行A / B测试,而且我的大部分工作都是在一个JS文件中,该文件在呈现任何其他内容之前加载到页面顶部但在jQuery加载之后有时会派上用场。 举一个非常简单的改变H1标签的例子,我通常会在头部注入一个样式来将H1不透明度设置为0,然后在DOMContentLoaded上,我会操纵H1内容然后将不透明度设置为1.这样做的原因是为了避免在更改发生之前闪现旧内容 - 隐藏整个对象 ..

如何在元素更改时播放声音,例如SO Chat吗?

我希望在页面上元素发生变化时播放声音。我知道如何做到这一点,但我不能让它只在第一次更改时播放,并且稍后不做,直到用户关注窗口(选项卡)并再次模糊它。 我当前的代码: var notif = new Audio('http://cycle1500.com/sounds/infbego.wav'); if(window.innerHeight === window.outerHeig ..
发布时间:2018-07-03 11:12:33 前端开发

哪个HTMLElement属性更改生成DOMAttrModified?

我有一个关于DOMAttrModified的问题。对HTML元素属性进行的哪些更改会触发DOMAttrModified事件(特别感兴趣的是Firefox,但是适用于其他浏览器的答案也可能足够)? 我有以下测试case: var elem = document.createElement('input'); document.body.appendChild(elem); ..
发布时间:2017-11-19 19:43:10 其他开发