我试图使用范围来检查鼠标是否在 url 上,但我不知道如何告诉扩展范围以获得完整的 url,而不仅仅是其中的每个单词。
这是一个显示问题的示例:jsFiddle
我将在可编辑的 iframe 中使用此代码。如果用户写了一个 url,我想给他打开它的可能性,尽管它不是锚元素而是纯文本。我不确定是否可以实现,但我想尝试一下。
我试图使用范围来检查鼠标是否在 url 上,但我不知道如何告诉扩展范围以获得完整的 url,而不仅仅是其中的每个单词。
这是一个显示问题的示例:jsFiddle
我将在可编辑的 iframe 中使用此代码。如果用户写了一个 url,我想给他打开它的可能性,尽管它不是锚元素而是纯文本。我不确定是否可以实现,但我想尝试一下。
一个问题是expand()
Range 的方法是非标准的,仅在 WebKit 中支持。另一个document.caretRangeFromPoint()
也是 WebKit-only。还有一个问题是,在识别单词时无法指定要匹配的正则表达式。
一个选项是我的Rangy库的新TextRange 模块,它适用于所有主要浏览器并提供更灵活的范围方法。还有一个进行中的职位模块,它提供了一个跨浏览器的实现(标准化为)。expand()
document.caretRangeFromPoint()
document.caretPositionFromPoint()
不幸的是,位置模块在 Firefox 中是不稳定的,但我打算尽快修复它。此外,由于我认为与 jsFiddle 有关的原因,以下演示目前在 IE 中不起作用。所以总的来说这还远远不能令人满意,但可能会给你一些想法。
现场演示:http: //jsfiddle.net/q3AtL/5/