¿Cómo elimino enlaces de una página web con JavaScript? Estoy usando Google Chrome. El código que he probado es:Eliminar enlaces con JavaScript en el navegador
function removehyperlinks() {
try {
alert(document.anchors.length);
alert(document.getElementsByTagName('a'));
for(i=0;i=document.anchors.length;i++) {
var a = document.anchors[i];
a.outerHTML = a.innerHTML;
var b = document.getElementsByTagName('a');
b[i].outerHTML = b[i].innerHTML;
}
} catch(e) { alert (e);}
alert('done');
}
Por supuesto, este es el código de prueba, que es por eso que tengo las alertas y las 2 cosas tratando al mismo tiempo. La primera alerta devuelve "0" el segundo [Object NodeList] y la tercera devuelve "done".
Mi cuerpo html se ve así:
<body onload="removehyperlinks()">
<ol style="text-align:left;" class="messagelist">
<li class="accesscode"><a href="#">General information, Updates, & Meetings<span class="extnumber">141133#</span></a>
<ol>
<li><a href="#">...</a></li>
<li><a href="#">...</a></li>
<li><a href="#">...</a></li>
<li><a href="#">...</a></li>
<li><a href="#">...</a></li>
<li><a href="#">...</a></li>
<li><a href="#">...</a></li>
<li><a href="#">...</a></li>
<li start="77"><a href="#"">...</a></li>
<li start="88"><a href="#">...</a></li>
<li start="99"><a href="#">...</a></li>
</ol>
</li>
</ol>
</body>
Como explicación, no aparecería en la lista de anclas a menos que tuviera el atributo de nombre establecido. Además, la razón por la que se elimina a todos los demás es porque cuando eliminas el primero, el segundo se convierte en el primero, y pasas al segundo, lo borras y el tercero ... Entiendes la idea. No entendí eso en aquel entonces, supongo. Lo que funcionaría bien es un ciclo while. 'While (document.anchors.length> 0) doc.anc [0] .outHTML = doc.anc [0] .inHTML;' –