问题标签 [dom3]

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.

0 投票
1 回答
69 浏览

javascript - DOM 3 级规范的事件组章节发生了什么?

2006版的 DOM 事件级别 3 规范中有一个章节“事件组”,但在当前版本中没有。这一章怎么了?是故意删除的吗?拥有(部分)有序的事件处理程序列表会非常有帮助。

0 投票
4 回答
19086 浏览

html - DOM 突变事件替换

由于 DOM 突变被 w3c 标记为已弃用(请参阅http://www.w3.org/TR/DOM-Level-3-Events/#events-mutationevents),是否有(快速)替代方法来检测属性修改在 DOM 中?

0 投票
2 回答
58361 浏览

javascript - 为什么在 DOM 级别 3 中不推荐使用 DOMSubtreeModified 事件?

为什么不推荐使用 DOMSubtreeModified 事件我们应该使用什么来代替?

0 投票
3 回答
1345 浏览

javascript - DOM 监听器的实现

我在想没有 DOM 监听器,所以我实现了自己的“重型”监听器:

我认为这很糟糕。所以我在 SO 上进行了搜索,然后弹出了这个问题。然而,关于已接受问题的最后一条评论指出它已被弃用。

w3.org/TR/DOM-Level-3-Events/#event-type-DOMSubtreeModified说这个事件已被弃用,我们会用什么来代替?

有替代品吗?
PS 它只需要在 Chrome 上工作,因为它是一个 Chrome 扩展。

0 投票
3 回答
775 浏览

javascript - 使用 DOM 3 级侦听器禁用退格

我正在制作一个用户必须能够输入的页面。退格的默认功能是返回一个页面,但是我需要防止这种情况并为其分配我自己的功能。

问题实际上是防止退格。我可以捕捉它,但我无法阻止它。我正在使用 3 级事件侦听器。event.preventDefault()对我不起作用,也没有返回错误。

我也试过这个:

但是第一个基本上可以

第二个什么都不做?

0 投票
3 回答
921 浏览

jquery - 替换 DOM3 getUserData/setUserData 方法

所以我们有一些老式的 Firefox 扩展代码,它们使用DOM3 方法 get/setUserData()在 DOM 中传递数据。不幸的是,这些在 DOM4 中已被弃用,因此 Firefox计划放弃对它们的支持,而 Chrome 从一开始就从未支持它们。

是否有跨浏览器替换?jQuery$.data似乎是一种选择,但“纯”JavaScript 更可取。

0 投票
2 回答
19897 浏览

internet-explorer - Internet Explorer 中的 DOM 级别 3 XPath

我刚刚在我的 Windows 7 上安装了 IE10,我注意到,即使我很高兴来自 AJAX 请求的 XML 现在是兼容的 DOM 文档,但仍然document.evaluate不支持一个相当基本的功能。

更糟糕的是,由于这些 XML不是自定义的 Microsoft对象,因此IXMLDocument节点不再支持。最后,IE10 似乎不支持 DOM Level 3 XPath 或 MSXML Xpath。selectNodesselectSingleNode

认真的,微软?有什么我想念的吗?

当然,我可以使用querySelectorand querySelectorAll,但我不想失去相当多的向后兼容性。

否则,仍然可以使用这一行请求 MSXML 文档

如此处所述,但我认为最后在 IE 中处理标准 DOM 文档也会很好。

那么,有没有办法在 IE10 中将 XPath 与标准 DOM 文档一起使用?

更新 26/7/2013 IE11 还不稳定,但它仍然不支持document.evaluate. 如果它在稳定版本中不支持它,我怀疑它是否会支持它。不用说这是荒谬的。

我知道你可以在 DOM 节点中使用querySelector/ All,但它在 IE9 及更低版本中不支持,它仍然很常用,而且无论如何 XPath 比选择器更强大。

幸运的是(如果你可以这么说的话),你仍然可以设置xhr.responseType = "msxml-document". 有那么一瞬间,我怕你再也做不到了……

更新 23/11/2013 IE11 现在很稳定,但遗憾的是,它不支持document.evaluate. 随着重量级 XML 文档在 Web 应用程序中越来越少地使用 JSON 或其他轻量级符号格式,这已不再是一个问题,但仍然存在。

设置responseType属性仍然提供遗留的 XML 文档,所以我猜什么都不会丢失。不过,我不知道这是否会适用于 IE12。

2015 年 8 月 15 日更新现在听起来很荒谬,但 Edge 现在支持document.evaluate. 就在(几乎)一切都切换到 JSON 进行数据交换的时候。好吧,我想,迟到总比没有好。

0 投票
1 回答
1728 浏览

javascript - DOMNodeInserted/Removed 事件填充(或类似事件)

我需要一种方法来监听删除或添加节点的子节点时的更改。我制作了一个自动滚动插件,它可以在添加新项目时使元素滚动到底部。我正在听的事件是DOMNodeInsertedand DOMNodeRemoved

我一直在寻找DOMNodeInsertedDOMNodeRemoved. 环顾四周,我找不到任何已经存在的东西。并非所有浏览器都支持该事件,并且目前已弃用。我有一个简单的(可能是幼稚的)polyfill,我写得很快,但我怀疑它是否有效(很好)。

我知道这些事件已被弃用,但有没有更好的方法来监听元素子项的变化?

0 投票
2 回答
1383 浏览

javascript - 有没有办法在 Mozilla 中设置 MouseEvent 的按钮属性?

我习惯于在 Javascript 中模拟鼠标点击,如下所示:

虽然这确实调度了点击事件,但 initMouseEvent() 并没有设置 DOM 3 中描述的 MouseEvent 接口的 'buttons' 属性:

添加“evt.buttons = 1”...

……没有效果。有谁知道该怎么做?

0 投票
1 回答
430 浏览

javascript - MutationObserver 使用的一些实际例子是什么?

这个 API 中最令人困惑的事情是对我来说使用它的原因。我知道 ReactJS 和 RxJS,当视图对数据变化做出反应时,我已经习惯了这个概念。因此,观察 DOM 的变化,这肯定是在数据发生一些突变之后发生的,我看不出它有多大意义。所以我的问题是什么时候(不)使用它?