请参阅此演示(取决于此时仅在 Chrome 中有效的 selectionchange 事件):http: //jsfiddle.net/fyG3H/
选择一些 lorem ipsum 文本,然后聚焦文本输入。在控制台日志中,您将看到有一个 DOMSelection 对象。它有一个 anchorNode 值,HTMLBodyElement
而它应该有一个Text
。
在我尝试对选择对象进行字符串化之前,我不知道为什么会发生这种情况:http: //jsfiddle.net/fyG3H/1/
这给出了以下错误:
未捕获的 TypeError:将循环结构转换为 JSON
您知道如何防止由 window.getSelection() 引起的这种循环引用吗?
编辑
新的演示也适用于其他浏览器,但仍然给出错误的锚节点:http: //jsfiddle.net/fyG3H/5/
并使用 JSON.stringify:http: //jsfiddle.net/fyG3H/6/
Firefox 似乎返回一个空的 {} 而不是抛出错误。