- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
DOMNodeInserted
event has been deprecated并且所有的突变事件都被突变观察者所取代。
但是,within mutation observers只有配置选项可以观察节点属性、内容和子节点的变化。它在 DOM 树中的位置没有任何变化。
我能想到一个“解决方案”,它是观察从 document.body 开始的所有内容,搜索一个突变,即添加我的目标节点,但这是一种非常糟糕的做任何事情的方法。
那么用 Mutation Observers 替换已弃用的 DOMNodeInserted 的预期方法是什么?
下面是一些代码,您可以在其中看到所有可用的变异观察器配置选项都没有响应添加到页面的元素:
var addMe = document.createElement("div");
var config = {
attributes: true,
childList: true,
characterData: true
}
var observer = new MutationObserver(function(mutations) {
console.log(mutations);
});
observer.observe(addMe, config);
function appendAddMe() {
document.body.appendChild(addMe);
}
div {
height: 50px;
width: 50px;
background: #969;
}
<button onclick="appendAddMe()">Append addMe</button>
最佳答案
我真的不认为这是问题的答案,但无论如何我都想分享它,因为它聊胜于无。
这个问题有一些很好的答案:What is the most efficient way of detecting when an element with a particular ID is inserted in the DOM
特别是这个答案:https://stackoverflow.com/a/25107064/4808079来自 schettino72
iframe elements trigger load/unoad events. You can insert a dumb iframe in the element you want to watch... And trigger a 'load' event in the original element yourself.
function watch($ele){
var $iframe = document.createElement('iframe');
$iframe.style.display = 'none';
$ele.appendChild($iframe);
$iframe.addEventListener('load', function(){
var event = new CustomEvent('load');
$ele.dispatchEvent(event);
});
}
我仍然想保留这个问题,因为这是一个 hack 而不是真正的答案。 DOMNodeInserted 可能没有被弃用,所以每个人都可以用这种方式代替。
关于javascript - DOMNodeInserted 的新等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40364156/
我正在使用 DOMNodeInserted MutationEvent,有什么方法可以使用此事件仅选择新插入的元素吗?当所有输入插入文档时,我必须向它们添加类。我正在通过 AJAX 请求向表单插入新的
基于this question ,我写了以下代码: $(function() { $( document ).on('DOMNodeInserted',"span:contains('Sugg
我有一个问题.. “DOMNodeInserted”没有按预期工作。我不确定我是否正确使用它。 有什么想法吗? 最佳答案 编辑:使用MutationObserver进一步向下滚动以获得更好的方法。 .
DOMNodeInserted event has been deprecated并且所有的突变事件都被突变观察者所取代。 但是,within mutation observers只有配置选项可以观察
我有一个奇怪的问题: 我正在开发一个 chrome 扩展,它在 facebook 中的“喜欢”按钮旁边添加了一个自定义按钮。到目前为止,在很多帮助下,我找到了一种运行脚本的方法,即使帖子被添加到新闻源
众所周知,DOMNodeInserted 会使动态页面变慢,MDN even recommends不完全使用它,但不提供任何替代方案。 我对插入的元素不感兴趣,我只需要知道某些脚本何时修改了 DOM。
我正在尝试编写一个“覆盖”在 Facebook 页面之上的 JavaScript 脚本。它使用 DOMContentLoaded 来检测何时加载内容,然后添加一些额外的东西。但是,因为 Faceboo
我想在每个“喜欢”按钮(chrome 扩展)之后添加一个元素。由于帖子是在不刷新页面的情况下添加到新闻提要中的,因此我必须添加一个事件监听器“DOMNodeInserted”。但是当我尝试将 afte
DOMNodeInserted 当节点“被附加到”或“被附加”时调用事件? 我问这个是因为下面的代码: function AddTextToContainer () { var textNod
当然这个问题很简单,但我就是想不通。 我正在使用 DOMNodeInserted 事件来检测何时插入新元素。 我不知道如何使用当前元素,例如获取它的父元素。 现在我有这样的功能: document.a
除了使用计时器来计算一段时间内的元素数量并寻找变化之外,我想不出更好的方法来模拟这个事件。 是否有某种专有的 IE 版本的 DOMNodeInserted?谢谢。 最佳答案 不,没有。最近的是prop
除了计数器之外,下面的代码工作正常。当我向列表中添加一项时,计数器是准确的,但当我从列表中删除一项时,计数器不会减一。有任何想法吗? HTML 1
我正在尝试监听具有特定类的节点动态添加到 DOM。添加此节点后,我想向此节点添加一个插件实例。我遇到的问题是 DOMNodeInserted 运行了多次,然后在这个导致问题的节点上多次运行我的插件。
我觉得这对于任何非业余爱好者来说可能会立即显而易见,但我已经为此困惑了好几天。 我正在编写一个在文档开始时执行脚本的 Chrome 扩展。我想在加载时重写特定 DIV 的 HTML,但在将它们显示给用
根据wiki中的DOM事件发现in the wiki link here , DOMNodeInserted:当一个节点被添加为另一个节点的子节点时触发 DOMNodeInsertedIntoDocu
我正在开发一个 chrome 扩展,我有一个函数 addToPage() ,它将一个带有 xyz 类的 div 添加到加载的页面。现在,当页面通过某些操作(而不是通过重新加载)更改时,我添加的 div
当一条新的聊天消息出现在 tampermonkey 脚本中的 YouTube 直播流上时,我正在尝试执行某些操作。 我在 ID 为“chat-messages”的 div 上使用 DOMNodeIns
这个问题已经在 stackoverflow 上被问过几次了,但我还没有找到适合我独特情况的解决方案。 我正在寻找替换已弃用的代码 livequery 和 DOMNodeInserted。示例如下所示。
当元素通过 DOMNodeInserted 事件插入到文档中时,我正在应用事件监听器函数。元素快速连续插入,但我只想让我的函数在每批元素插入中执行一次。 我曾尝试在我的闭包中使用一个具有全局范围的 b
如果我在下面运行: $(document).bind('DOMNodeInserted', function(){ $('.new', this).hide(); }); 它会正常运行并且
我是一名优秀的程序员,十分优秀!