wie macht man mit Javascript aus vorher festgelegten wörtern links?
hallo.
wie kann ich mit javascript den text einer seite nach bestimmten wörtern durchsuchen lassen, die durch javascript automatisch zu links zum gleichnamigen anker werden?
Antwort schreiben
Antwort 1 von Kaiman vom 22.06.2020, 16:48 Options
Hi,
ich kenne ein Such-Script, das beim Scannen der Webseiten die Meta-Tags ( Title, Description und Keywords ) gelesen werden. Den Quellcode aller Suchmaschinendateien können Sie Ihren Bedürfnissen anpassen, Texte entfernen oder Texte hinzufügen und Bilder einfügen...
Zu finden ist das Script hier:
http://www.weblorenz.de/webseiten/suchtool/suchmaschine.htmEin Anwendungsbeispiel siehe
hier.
Antwort 2 von nympseudo vom 22.06.2020, 20:17 Options
ich meinte eigentlich, dass bestimmte wörter auf meiner website automatisch zu links werden sollen. das soll schreibarbeit abnehmen. der websitebesucher soll dafür nichts tun müssen. er bekommt eigentlich gar nicht mit, das da ein javascript am werk was. noch ideen?
Antwort 3 von Kaiman vom 22.06.2020, 20:46 Options
Sowas wird es nicht als fertiges Script geben. Hier sind Programmierkünstler gefragt.
Antwort 4 von Friedel vom 22.06.2020, 21:33 Options
Ich kann mir keine Situation vorstellen, die sowas sinnvoll macht. Der Auifwand wäre sehr hoch. Mit einem kleinen Makro könnte man jeden halbwegs guten Editor diese Wörter automatisch zu Links umbauen. Aber sowas auf Dauer bei jedem Seitenaufruf auf dem Rechner des Besuchers machen zu lassen ist imho Unsinn. Und merken würde der Besucher das indirket auf jeden Fall, denn auf den meisten Rechnern würde das Script den Browser recht stark belasten und es würde entsprechend lange dauern, bis die Links zu sehen sind.
Antwort 5 von katy vom 23.06.2020, 21:44 Options
Hallo nympseudo,
so schwer sollte das nicht sein!
function text2link(txt,txtlink) {
var koerper = document.getElementsByTagName("body")[0];
var alles = koerper.innerHTML;
var suchen = new RegExp(txt,"g");
var allesneu = alles.replace(suchen,txtlink);
koerper.innerHTML = allesneu;
}
window.onload=function() {
text2link("Beispiel","<a href='www.example.de'>Beispiel</a>");
}
nach dem Laden der Seite wird der komplette Seiteninhalt ausgelesen, mittels
replace alle Vorkommen des gesuchten Textes "Beispiel" durch den Link "<a href='www.example.de'>Beispiel</a>" ersetzt, und dann der Seiteninhalt damit überschrieben.
Wahrscheinlich ist es aber sinnvoller, wenn du den Vorgang nur auf Seitenteile anwendest.
Viel Erfolg
katy
Antwort 6 von nympseudo vom 28.06.2020, 16:54 Options
Danke.
Folgendes hab ich draus gemacht:
<script language=JavaScript>
<!--
function text2link(txt,txtlink) {
var koerper = document.getElementsByTagName("body")[0];
var alles = koerper.innerHTML;
var suchen = new RegExp(txt,"g");
var allesneu = alles.replace(suchen,txtlink);
koerper.innerHTML = allesneu;
}
var wort = ("Beispiel")
window.onload=function() {
text2link(wort ,"<a href='#" + wort + "'>" + wort + "</a>");
}
// -->
</script>
Kann man für var wort gleich mehrere Wörter festlegen, oder muss ich das für jedes Wort neu machen?
Antwort 7 von sutadur vom 28.06.2020, 19:43 Options
Zitat:
Ich kann mir keine Situation vorstellen, die sowas sinnvoll macht.
Nun ja, auch hier im Forum wird das praktiziert, und wenn auch "nur" zu Zwecken der Werbung ... Ähnlich z.B. auch bei Wikipedia. Insofern kann es bei Texten schon Sinn machen, wenn Begriffe enthalten sind, die an anderer Stelle z.B. noch weitergehend erläutert werden.
Antwort 8 von katy vom 29.06.2020, 09:00 Options
Hallo nympseudo,
das könnte so funktionieren
<script type="text/javascript">
function text2link() {
var txt = arguments;
var koerper = document.getElementsByTagName("body")[0];
var alles = koerper.innerHTML;
for (var t=0; t<txt.length; t++) {
var suchen = new RegExp(txt[t],"g");
var txtlink="<a href='#" + txt[t] + "'>" + txt[t] + "</a>";
alles = alles.replace(suchen,txtlink);
}
koerper.innerHTML = alles;
}
window.onload=function() {
text2link("Beispiel","Example","Exemplum");
}
</script>
Wenn das Format deiner Links immer gleich bleibt, kann das die Funktion mit übernehmen.
Du kannst die Beispielliste beliebig verlängern!
Beachte aber, dass die Funktion nicht prüft, ob ein Wort schon in einem Link steht. Aus
<a href="Example.org">Beispielseite</a>würde bei diesem Aufruf
<a href="<a href='#Example'>Example</a>.org"><a href='#Beispiel'>Beispiel</a>seite</a>also ziemlicher Unsinn!
Beachte bitte bei der Gelegenheit, dass
<script language=JavaScript> schon seit etlichen Jahren nicht mehr zulässig ist und die Kommentarzeichen
<!-- und // --> mindestens genausolang überflüssig sind.
Einen schönen Sonntag wünscht
katy
Antwort 9 von nympseudo vom 06.07.2020, 08:34 Options
danke katy.
gibt es eine möglichkeit, wie man diese funktion nicht auf den ganzen <body>-bereich, sondern nur auf ein bestimmtes div bezieht?
Antwort 10 von katy vom 06.07.2020, 14:21 Options
Hallo nympseudo,
ja, das ist sogar relativ einfach.
Fasse den Teil der bearbeitet werden soll in zB ein div:
<div id="austauschteil">
Ganz viel Text und HTML
</div>
und ersetze inm Script die Zeile
var koerper = document.getElementsByTagName("body")[0];
durch
var koerper = document.getElementById("austauschteil");
katy