Попробуйте эту функцию:
function linkify(element) {
var children = element.childNodes,
stub = document.createDocumentFragment();
for (var i=0; i<children.length; ++i) {
if (children[i].nodeType === Node.TEXT_NODE) {
var parts = children[i].nodeValue.split(/(http:\/\/\S+)/); // adjust regex
if (parts.length > 1) {
for (var j=0; j<parts.length; ++j) {
if (j % 2 === 1) {
var link = document.createElement("a");
link.setAttribute("href", parts[j]);
link.appendChild(document.createTextNode(parts[j]));
stub.appendChild(link);
} else {
stub.appendChild(document.createTextNode(parts[j]));
}
}
continue;
}
}
stub.appendChild(children[i]);
}
document.write(stub.childNodes.length);
element.parentNode.replaceChild(stub, element);
}
linkify(document.body);
Это чистая манипуляция DOM.Эта linkify
функция ожидает, что аргумент будет HTMLElement .Вам просто нужно настроить регулярное выражение для захвата URL.