我在GitHub上找到了Linkify项目(https://github.com/cowboy/javascript-linkify),可以用它来查找和“链接化”文字中的URL和域名。
它非常不错!它完全适用于文本!
但是,我不太确定如何使它适用于其中包含我想要Linkify的文本的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);
}
}
}