【发布时间】:2013-01-26 17:41:46
【问题描述】:
如上一篇文章所述
jQuery - Identify and mark link in textarea
我想创建一个输入框,在其中自动识别、格式化 URL,并在 URL 之后的空白处或模糊处为每个 URL 调用一个方法。我们还有一个问题,尽管用于设置检测到的链接周围的格式化 p-tags 的elem.html(newText); 工作正常,但之后将光标设置为开头。因此,当您编写“this is a www.url.com”并按空格键时,URL 会被正确识别并格式化并调用方法“linkDetected”,但光标会移动到输入字段的开头,不可能继续写。
我创建了一个 JSFiddle,您可以自己查看代码和问题:
感谢任何帮助。
【问题讨论】:
-
我最近为 contenteditable 回答了一个非常相似的问题:stackoverflow.com/questions/14636218/…。这是一个 jsFiddle 示例:jsfiddle.net/8hYSc/3。可以改进为不添加指向仍在插入符号的文本的链接。
-
更新了仅在按下回车键或空格键后才触发链接的示例:jsfiddle.net/8hYSc/4
-
@TimDown 这很好,除了你必须输入 http:// (单独使用 www. 不起作用)并编辑链接或删除链接后的空格并附加一些内容(假设你输入“youtube.com”,删除空格并附加“/videos”)不起作用...
-
同意,它肯定需要一些调整。正则表达式当然不是我推荐的:我使用了一个非常简单的说明性正则表达式,因为编写一个像样的正则表达式的问题并不简单,并且与中心问题无关。虽然这是一个起点,插入符号保存/恢复的东西应该很有用。
-
请查看我在下面附加的代码 - 你知道它为什么不起作用吗? @TimDown
标签: javascript jquery range selection contenteditable