【发布时间】:2013-03-11 07:15:36
【问题描述】:
我被引导到 GitHub (https://github.com/cowboy/javascript-linkify) 上的 Linkify 项目,以查找和“链接”仅在文本中浮动的 URL 和域。
太棒了!它完全适用于文本!
但是,我不太确定如何使其在具有我想要链接的文本的 textNode 上工作。
我知道textNode 只有textContent,因为.. 都是文本。由于这个 Linkify 函数将 HTML 作为文本返回,有没有办法获取一个 textNode 并使用 Linkify 输出“重写”其中的 HTML?
我一直在 JSFiddle 上玩它:http://jsfiddle.net/AMhRK/9/
function repl(node) {
var nodes = node.childNodes;
for (var i = 0, m = nodes.length; i < m; i++) {
var n = nodes[i];
if (n.nodeType == n.TEXT_NODE) {
// do some swappy text to html here?
n.textContent = linkify(n.textContent);
} else {
repl(n);
}
}
}
【问题讨论】:
-
你的示例代码太乱了,我什至不知道从哪里开始!你能把它清理一下,然后有一个普通的例子,还有你想要的 textNode 吗?
-
@ryan 它很接近,但你看到它破坏了已经正确超链接的 URL。
-
@HanletEscaño 这是一个“清理过的”小提琴jsfiddle.net/AMhRK/6
-
@Jippers 你试过 ryan 的 jsFiddle 吗?它确实有效。
标签: javascript html textnode