将范围扩展到网址

时间:2012-09-09 00:58:57

标签: javascript range

我尝试使用范围检查鼠标是否在网址上,但我不知道如何告诉扩展范围以获取完整网址,而不仅仅是每个字。

以下是显示问题的示例:jsFiddle

我将在可编辑的iframe中使用此代码。如果用户写了一个url,我想让他有可能打开它,虽然它不是一个锚元素而是纯文本。我不确定是否可以实现,但我想尝试一下。

1 个答案:

答案 0 :(得分:0)

一个问题是Range的expand()方法是非标准的,只在WebKit中受支持。另一个是document.caretRangeFromPoint()也是WebKit。还有一种方法是,在识别单词时无法指定匹配的正则表达式。

一个选项是我的TextRange module库的新Rangy,它适用于所有主流浏览器,并提供更灵活的expand()范围方法。还有一个正在进行中的位置模块,它提供document.caretRangeFromPoint()的跨浏览器实现(标准化为document.caretPositionFromPoint())。

不幸的是,位置模块在Firefox中很不稳定,但我打算很快修复它。此外,由于我认为与jsFiddle相关的原因,以下演示目前在IE中不起作用。总的来说这远非令人满意,但可能会给你一些想法。

现场演示:http://jsfiddle.net/q3AtL/5/