Estoy intentando hacer que determinadas palabras de un texto se conviertan en links con javascript (si coinciden con ciertas expresiones regulares). Me gustaría que cada link tuviera diferentes posibles urls que cambien aleatoriamente cada vez que se refresque la página.
El código con el que estoy trabajando es el siguiente:
<html>
<head>
</head>
<body>
<p>La casa tiene 200 m2 y está situada en Tenerife. Tiene cuatro ventanas y dos puertas.</p>
<script>
function linkar(texto, link){
html = document.documentElement.innerHTML;
re = new RegExp(texto, 'g');
if(re.test(html)){
html = html.replace(re, '<a href="' + link + '" rel="nofollow noopener" target="_blank">' + texto + '</a>');
}
document.documentElement.innerHTML = html;
}
vinculos = {
'casa':['https://www.casa.com', 'https://www.casa.es', 'https://www.casa.net'],
'Tenerife':['https://www.tenerife.es', 'https://www.isladetenerife.com', 'https://tenerife.org'],
'puertas':['https://www.puertas.com', 'https://www.puertas.es', 'https://www.puertas.net']
};
//tiene errores; a veces funciona y a veces no
for(clave in vinculos){
for(i = 0; i < vinculos[clave].length; i++){
var x = Math.floor(Math.random() * vinculos[clave].length)
linkar(clave, vinculos[clave][x]);
}
}
</script>
</body>
</html>
Parece que al principio funciona bien, pero después empieza a darme errores y a imprimir parte del código en pantalla. ¿Me podrían ayudar, por favor? A ver quién sabe lo que está mal.
Un saludo y muchas gracias