juppinger: In vorhandenen Textknoten einen Link einfügen (DOM)

Beitrag lesen

Hallo nochmal,

danke für Deine Hilfe.

Ich bin jetzt soweit -wie Du es geschrieben hast-...:

  1. Quell-Textknoten kürzen bis zur Link-Stelle

Jetzt habe ich jedoch das Problem, dass der anzuhängende Link nicht erscheint und eine JS-Fehlermeldung kommt ("Unerwarteter Aufruf oder Zugriff").

Hier ist mein Code:
----------------------------------------

<html>
<head>
</head>
<body>

<h1>Die Abwehr und Pirlo beschäftigen</h1>
Diese Bitte konnte Urs Siegenthaler Jogi Löw beim besten Willen nicht erfüllen. Dabei wollte der Assistent von Bundestrainer Klinsmann dem DFB-Chef-Analytiker nur einen einzigen Schwachpunkt im italienischen Team entlocken. "Es klingt hart", sagte Siegenthaler, "aber Italien hat wirklich eine komplette Elf, die kaum Fehler macht." Da stellt sich natürlich die Frage, wie man das Halbfinale gegen Italien (ab 20.45 Uhr im onSport Live-Ticker) überhaupt erfolgreich gestalten kann. Auch die T-Online Analyse bringt zum Vorschein, dass auf die deutsche Mannschaft ein extrem dicker Brocken wartet, der aber aber durchaus zu knacken ist.
<br><br>
<button onclick="scantext();">Click Me</button>

<script language="JavaScript">
<!--
function scantext() {

n = document.getElementsByTagName("body")[0];
 keyword = "Team";

walk_dom(n,keyword);

function walk_dom(n,keyword) {
 /*
 1 Elementknoten
 2 Attributknoten
 3 Textknoten
 4 Knoten für CDATA-Bereich
 5 Knoten für Entity-Referenz
 6 Knoten für Entity
 7 Knoten für Verarbeitungsanweisung
 8 Knoten für Kommentar
 9 Dokument-Knoten
 10 Dokumenttyp-Knoten
 11 Dokumentfragment-Knoten
 12 Knoten für Notation
 */

if (n.nodeType == 3 /*Node.TEXT_NODE*/)
 {
  var pos = n.data.search(keyword);
  //var pnt = n.parentNode.tagName;
  //if (pos > -1 && pnt != "A" && pnt != "IMG") {
  if (pos > -1) {
   txtreplace(n,keyword,pos);
  }
 }
 else
 {
 var kids = n.childNodes;

for(var i = 0; i < kids.length; i++)
 {
  walk_dom(kids[i],keyword);
 }
 }
 }

function txtreplace(n,keyword,pos) {
  var endtext = n.cloneNode(true); // Textknoten kopieren (fuer Endtext nach HREF)
  n.data = n.data.substr(0,pos); // Aktuellen (Ersten) Knoten kürzen bis vor das Keyword
  endtext.data = endtext.data.substr( (pos + keyword.length) , endtext.data.length); // Endtextknoten kürzen ab dem Keyword bis Ende

// Link-Knoten erzeugen
  var objLink = document.createElement("a");
  objLink.setAttribute("href", "http://www.google.de");
  objLink.appendChild(document.createTextNode(keyword));

n.appendChild(objLink);
  //n.appendChild(endtext);
 }

}
//-->
</script>

</body>
</html>

-----------------------------------------------

Bitte hilf mir doch nochmal :)

Danke + Gruß
juppinger