Jak odstraním odkazy z webové stránky pomocí JavaScriptu? Používám Google Chrome. Kód, který jsem zkoušel, je:
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'); }
Samozřejmě, toto je testovací kód, a proto se současně pokouším upozornění a 2 věci. První výstraha vrátí „0“, druhá [Object NodeList] a třetí vrátí „hotovo“.
Moje html tělo vypadá takto:
<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>
Odpověď
function removehyperlinks() { try { for(i=0;i<document.anchors.length;i++) { document.anchors[i].outerHTML = document.anchors[i].innerHTML } } catch(e) { alert ("try2:" + e);} } function runner() { for(i=1;document.anchors.length > 0;i++) { //alert('run ' + i + ':' + document.anchors.length); removehyperlinks(); } }
Tohle funguje. Jelikož mám obsah pod kontrolou, pojmenoval jsem všechny kotvy „odkaz“ pomocí jednoduchého vyhledávání a nahrazení. Pokud jej spustíte jednou, vyřadí každý další. Takže jsem to nechal opakovat, jak vidíte, dokud nebudou všichni venku.