小编bit*_*ess的帖子

当附加的 DOM 节点像事件的 removeEventListener 一样被删除时,是否应该删除/断开 MutationObservers?

在这里发现了一个几乎相同的问题:Should an IntersectionObserver is disconnected when element is removed

我还没有找到说明MutationObserver从 DOM 中删除带有附加(MO)的元素时应该做什么的文档。API 不提供像 那样的 remove 方法removeEventListener,只是一个disconnect只涉及子节点的临时方法。垃圾收集最终会出现,但似乎在 SPA 网络应用程序中可能会变得混乱/臃肿。我可以使用delete关键字来删除保存 MO 的变量,但我已经阅读了这样做的警告(不一定适用于 MO),而不是让垃圾收集处理它。

因此,我正在寻找官方信息,例如“删除关联的 DOM 元素时删除 MO”,或“不再使用分配的变量时,MO 会自动垃圾回收”,或“MO 应从其父对象中删除”如果它们不再被使用,“等等。

规范:https : //dom.spec.whatwg.org/#mutation-observers

javascript mutation-observers

6
推荐指数
1
解决办法
1180
查看次数

是否有 Git 命令用于在推送到 master 之前添加通知/警告

我有一个用例,其他人依赖我在他们从 master 下拉时没有启用标志,但我需要在本地处理 repo 时启用它。

我希望/希望?Git 有一种方法可以添加一个通知或警告,当请求推送到 master 时触发......作为各种“提醒”。

所以也许我的工作流程可能是这样的:

  1. 发展,发展,发展。
  2. git add -A
  3. 状态
  4. git commit -m "为...添加的功能"
  5. git结帐大师
  6. git合并那个分支
  7. git push origin master
  8. 警告“这是一条自定义消息,提醒您禁用该标志。”
  9. git push origin master
  10. --> 文件在第二次推送尝试后推送到 master

git

3
推荐指数
1
解决办法
1622
查看次数

使用 window.getSelection 获取选择/突出显示中的所有元素

我可以获得单个元素或共同祖先元素,但我无法弄清楚如何获取所有突出显示的元素。

这是获取共同祖先的演示。

console.clear();
document.querySelector('div').addEventListener('mouseup', () => {
  const selection = window.getSelection();
  const elem = selection.getRangeAt(0).commonAncestorContainer.parentNode;
  console.log(elem);
});
Run Code Online (Sandbox Code Playgroud)
<div contenteditable="true">
  <header>
    <h1>Rich Text Editing Development</h1>
    <p>I'm <strong><em>really</em> annoyed</strong> with trying to figure out this answer.</p>
  </header>
</div>
Run Code Online (Sandbox Code Playgroud)

由于rangeCount总是只有 1,并且我从选择和其他子项中看到的对象没有所选项目的数组或节点列表(我注意到),所以我不知道该怎么办。

那么我如何知道哪些元素被选择/突出显示?

javascript wysiwyg contenteditable rich-text-editor

2
推荐指数
1
解决办法
2887
查看次数