JS Anfänger braucht Hilfe.
Ich bastele gerade an einem Online WYGIWYG auf JS Basis aus verschiedenen Tuts zusammen und hänge fest. Zur allgemeinen Info kommen die Texte aus einer ACCESS DB und werden über ASP (VB) in Flash ausgegeben. Ich habe schon viele Tutorials durch und kann wegen Flash nicht auf „execCommand“ vom IE zurückgreifen. Das ist ganz schnell erklärt.
Das „execCommand“ generiert „Bold“ so:
<strong> der Text </strong>.
Flash braucht es aber so:
<b> der Text </b>
Dasselbe gilt auch für andere HTML-Tags
Kann mir jemand Helfen dieses Scriptproblem zu beheben?
Hier mein Versuch (Das ganze erstmals ohne DB anbindung):
Ich bastele gerade an einem Online WYGIWYG auf JS Basis aus verschiedenen Tuts zusammen und hänge fest. Zur allgemeinen Info kommen die Texte aus einer ACCESS DB und werden über ASP (VB) in Flash ausgegeben. Ich habe schon viele Tutorials durch und kann wegen Flash nicht auf „execCommand“ vom IE zurückgreifen. Das ist ganz schnell erklärt.
Das „execCommand“ generiert „Bold“ so:
<strong> der Text </strong>.
Flash braucht es aber so:
<b> der Text </b>
Dasselbe gilt auch für andere HTML-Tags
Kann mir jemand Helfen dieses Scriptproblem zu beheben?
Hier mein Versuch (Das ganze erstmals ohne DB anbindung):
Code:
<html>
<head>
<title></title>
<script language="javascript" type="text/javascript">
<!--
// Array mit den HTML-Tags zum Formatieren des Textes
arrTags = new Array();
arrTags['fett'] = new Array("<B>", "</B>");
var txtBefore;
var txtAfter;
var txtMiddle;
function splitSelection() {
// TextArea den Fokus geben
idContent.document.focus();
// TextRange-Objekt des selektierten Textes erstellen
var selText1 = document.selection.createRange(); // Zum Positionieren des Cursors an Anfang der Markierung
var selText2 = document.selection.createRange(); // Zum Positionieren des Cursors an Ende der Markierung
// Markierten Text auslesen
txtMiddle = selText1.text;
// Bewegt den Cursor vor den markierten Text
selText1.collapse(true); // Start- und Endpunkt sind gleich
// Bewegt den Cursor an das Ende des markierten Textes
selText2.collapse(false); // Start- und Endpunkt sind gleich
// Markierte Bereiche duplizieren
var selTxtBefore = selText1.duplicate(); // Endpunkt selTextBefore vor markiertem Bereich
var selTxtAfter = selText2.duplicate(); // Startpunkt selTextAfter nach markiertem Bereich
// Setzt das Objekt auf den Text der TextArea -> selText1 enthält den gesamten Text der Area
//AB HIER IST DER FEHLER
selText1.moveToElementText(document.Content);
// Der Startpunkt von selTxtBefore wird der Startpunkt des gesamten Area-Textes
selTxtBefore.setEndPoint("StartToStart", selText1);
// Der Endpunkt von selTxtAfter wird der Endpunkt des gesamten Area-Textes
selTxtAfter.setEndPoint("EndToEnd", selText1);
txtBefore = selTxtBefore.text;
txtAfter = selTxtAfter.text;
}
function insert(strFormat) {
splitSelection();
document.formular.Content.value = txtBefore + arrTags[strFormat][0] + txtMiddle + arrTags[strFormat][1] + txtAfter;
document.formular.Content.focus();
}
// Falls ein Wert über die URL übergeben wurde
if(window.location.search != ""){
// Text für Vorschau auslesen und extrahieren
var strParameter = String(unescape(window.location.search));
strParameter = strParameter.substr(1, strParameter.length);
}
-->
</script>
</head>
<script LANGUAGE="JavaScript">
var isHTMLMode=false
function setMode(bMode)
{
var sTmp;
isHTMLMode = bMode;
if (isHTMLMode){
sTmp=idContent.document.body.innerHTML;
idContent.document.body.innerText=sTmp;
}
else {
sTmp=idContent.document.body.innerText;
idContent.document.body.innerHTML=sTmp;
}
idContent.focus();
}
///////////
function preload(){
idContent.document.open();
idContent.document.write(Content.value);
idContent.document.close();
idContent.document.designMode="On";
}
</script>
<body onLoad="preload();">
<!-- <form name="formular" action="" method="GET"> -->
<br>
<script language="JavaScript" type="text/javascript">
<!--
function document.onreadystatechange()
{
idContent.document.designMode="On"
}
//-->
</script>
<input type="button" class="button" value="fett" onclick="insert('fett')">
<iframe width="600" id="idContent" height="200"></iframe>
<textarea name="Content" style="display: none;" rows="7" cols="55"><%=fldVal%></textarea>
<table id="tblCoolbar" width="600">
<tr>
<td><div align="left">
<input type="button" onclick="Save()" name="cmdSave" value=" speichern " class="cmdflat">
<input type="checkbox" onclick="setMode(this.checked)">
Edit HTML</div></td>
</tr>
</table>
</body>
</html>
Zuletzt bearbeitet: