Hi razors,
hab grade eher zufällig dein thema gesehen, und bin mir unsicher, ob ich dir vielleicht etwas anbieten könnte. tatsächlich bin ich grade dabei, mir ein wenig javascript beizubringen, und da habe ich als eine der ersten mir selbst gestellten aufgaben mal versucht ein text-html-konvertierungsprogramm zu schreiben. das hab ich jetzt mal eben noch um die einfügung des <br />-tags erweitert. wenn du die XHTML-Schreibweise explizit nicht willst, musst du nur in Zeile 80 das "<br />" durch "<br>" ersetzen.
Probier's mal aus. Hier ist der vollständige Code für ein .html dokument:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Convert Text to HTML-Entities</title>
<style type="text/css">
html, body {
height:100%;
}
body {
background-color: #fff9cd;
margin: 30px;
font-family: arial, sans-serif;
font-size: 12px;
}
textarea {
background-color: #fcfcfc;
border: 1px solid grey;
font-size: 12px;
padding: 5px;
}
div {
float:left;
margin: 0px 10px 10px 0px;
}
.feld {
width: 430px;
}
.button {
width: 100px;
padding-top: 126px;
font-weight: bold;
text-align: center;
}
#feste_breite {
width: 1070px;
height: 470px;
}
</style>
<script type="text/javascript">
function tohtmlentities() {
var text = document.textfeld.text_in.value;
var laenge = text.length;
document.textfeld.text_laenge.value = laenge;
var neu = "";
for (var i = 0; i <= laenge; i++) {
var zeichen = text.charAt(i);
switch(zeichen) {
case 'ä' : zeichen = "ä"; break;
case 'Ä' : zeichen = "Ä"; break;
case 'ö' : zeichen = "ö"; break;
case 'Ö' : zeichen = "Ö"; break;
case 'ü' : zeichen = "ü"; break;
case 'Ü' : zeichen = "Ü"; break;
case 'ß' : zeichen = "ß"; break;
case '&' : zeichen = "&"; break;
case '<' : zeichen = ">"; break;
case '>' : zeichen = "<"; break;
case '"' : zeichen = """; break;
case '–' : zeichen = "—"; break;
case 'à' : zeichen = "à"; break;
case 'À' : zeichen = "À"; break;
case 'á' : zeichen = "á"; break;
case 'Á' : zeichen = "Á"; break;
case 'é' : zeichen = "é"; break;
case 'É' : zeichen = "É"; break;
case 'è' : zeichen = "è"; break;
case 'È' : zeichen = "È"; break;
case '\u000A' : zeichen = "<br />\n"; break;
}
neu += zeichen;
}
document.textfeld.text\_out.value = neu;
document.textfeld.text\_out\_laenge.value = neu.length;
}
function html_to_text() {
var text = document.textfeld.text_in.value;
var laenge = text.length;
document.textfeld.text_laenge.value = laenge;
var neu = "";
for (var i = 0; i <= laenge; i++) {
var zeichen6 = text.substr(i,6);
var zeichen7 = text.substr(i,7);
var zeichen5 = text.substr(i,5);
var zeichen4 = text.substr(i,4);
var zeichen8 = text.substr(i,8);
switch(zeichen6) {
case "ä" : zeichen6 = "ä" ; break;
case "Ä" : zeichen6 = "Ä" ; break;
case "ö" : zeichen6 = "ö" ; break;
case "Ö" : zeichen6 = "Ö" ; break;
case "ü" : zeichen6 = "ü" ; break;
case "Ü" : zeichen6 = "Ü" ; break;
case """ : zeichen6 = '"' ; break;
}
switch(zeichen7) {
case "ß" : zeichen7 = "ß" ; break;
case "—" : zeichen7 = '–' ; break;
}
switch(zeichen4) {
case ">" : zeichen4 = "<" ; break;
case "<" : zeichen4 = ">" ; break;
}
switch(zeichen8) {
case "à" : zeichen8 = 'à' ; break;
case "À" : zeichen8 = 'À' ; break;
case "á" : zeichen8 = 'á' ; break;
case "Á" : zeichen8 = 'Á' ; break;
case "é" : zeichen8 = 'é' ; break;
case "É" : zeichen8 = 'É' ; break;
case "è" : zeichen8 = 'è' ; break;
case "È" : zeichen8 = 'È' ; break;
}
if (zeichen5 == "&") zeichen5 = "&" ;
if (zeichen6.length == 1) {
zeichen = zeichen6;
i +=5;
}
else if (zeichen7.length == 1) {
zeichen = zeichen7;
i += 6;
}
else if (zeichen4.length == 1) {
zeichen = zeichen4;
i += 3;
}
else if (zeichen8.length == 1) {
zeichen = zeichen8;
i += 7;
}
else if (zeichen5.length == 1) {
zeichen = zeichen5;
i += 4;
}
else {zeichen = text.charAt(i);}
neu += zeichen;
}
document.textfeld.text\_out.value = neu;
document.textfeld.text\_out\_laenge.value = neu.length;
}
</script>
</head>
<body>
<div id="feste_breite">
<form name="textfeld">
<div align="left">
<textarea name="text_in" cols="50" rows="30"></textarea>
<br /><br /><br />
Zeichenanzahl: <input type="text" name="text_laenge" size="4" value="" readonly />
</div>
<div class="button">
<button type="button" onclick="tohtmlentities()">convert >></button><br />Text<br />to <br />HTML-<br />Entities<br /><br /><br />
<button type="button" onclick="html_to_text()">convert >></button><br />HTML<br />to <br />Text
</div>
<div align="left">
<textarea name="text_out" cols="50" rows="30"></textarea>
<br /><br /><br />
Zeichenanzahl: <input type="text" name="text_out_laenge" size="4" value="" readonly />
</div>
</form>
</div>
</body>