one6666
Mitglied Titanium
Hallo,
Nachtrag<start>:
Habe es geschafft
Für nachträgliche leser:
Der Safari und Chrome brauchen das setzen einens focus() garnicht,
befindest du dich in dem Textbereich so springt er nachdem anwählen einer Eigenschafft(bold italic usw.) direkt in diesen Bereich zurück,
kommt aber noch etwas anders dazu, der ein oder andere wird beim schreiben vielleicht direkt bold drücken und dann in das Textfeld wechseln,
sowären aber die Eigenschafften weg, um das zu lösen muss man einen focus() setzen WIEDERSPRUCH*
Da man aber sicher weiß das bei dem ersten Laden der focus nicht in den Textfeld ist, kann man sich so helfen:
Das wäre jetzt der Chrome und Safari Code ;-)
Nachtrag<ende>:
bin mir garnicht so 100% sicher ob es jetzt am focus() liegt, sieht aber ganz danach aus,
bin jetzt aktuell bei den einfügen von bold, italic und underline, nur dabei unterscheiden sich die Browser schon,
im IE, Firefox und Opera geht alles einwandfrei,
aber im Safari und im Chrome passiet wenn man das zweite 2 mal auf eine Eigenschafft klickt (bold, italic oder underline) folgendes:
Bestender Text wird makiert, und dann gelöscht, der focus() liegt dann wieder im Textfeld und man fängt mit der neuen Eigenschafft anzu schreiben
Ich habe schon versucht das ganze Rätsel zu entschlüßeln, aber ganz sicher bin ich mir nicht, ich würde aber mal drauf tippen das der focus() dran schuld ist
Hier mal eine Live Demo zum besseren verständnis:
http://media-volex.de/editor/editor.html
Hier nochmal der Code:
HTML:
CSS:
Javascript:
Weiß Jemand wo der Fehler sich versteckt ?
Nachtrag<start>:
Habe es geschafft
Für nachträgliche leser:
Der Safari und Chrome brauchen das setzen einens focus() garnicht,
befindest du dich in dem Textbereich so springt er nachdem anwählen einer Eigenschafft(bold italic usw.) direkt in diesen Bereich zurück,
kommt aber noch etwas anders dazu, der ein oder andere wird beim schreiben vielleicht direkt bold drücken und dann in das Textfeld wechseln,
sowären aber die Eigenschafften weg, um das zu lösen muss man einen focus() setzen WIEDERSPRUCH*
Da man aber sicher weiß das bei dem ersten Laden der focus nicht in den Textfeld ist, kann man sich so helfen:
HTML:
var activ = false;
function toedit(command, parameter){
if(activ == false){
document.getElementById("textfield_id").focus();
activ = true;
}
document.execCommand(command, false, parameter);
}
Nachtrag<ende>:
bin mir garnicht so 100% sicher ob es jetzt am focus() liegt, sieht aber ganz danach aus,
bin jetzt aktuell bei den einfügen von bold, italic und underline, nur dabei unterscheiden sich die Browser schon,
im IE, Firefox und Opera geht alles einwandfrei,
aber im Safari und im Chrome passiet wenn man das zweite 2 mal auf eine Eigenschafft klickt (bold, italic oder underline) folgendes:
Bestender Text wird makiert, und dann gelöscht, der focus() liegt dann wieder im Textfeld und man fängt mit der neuen Eigenschafft anzu schreiben
Ich habe schon versucht das ganze Rätsel zu entschlüßeln, aber ganz sicher bin ich mir nicht, ich würde aber mal drauf tippen das der focus() dran schuld ist
Hier mal eine Live Demo zum besseren verständnis:
http://media-volex.de/editor/editor.html
Hier nochmal der Code:
HTML:
HTML:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WYSIWYG Editor by One</title>
<!-- Include-->
<script type="text/javascript" src="js/editor.js"></script> <!-- Include JS -->
<link rel="stylesheet" type="text/css" href="css/editor.css"> <!-- Include CSS -->
</head>
<body>
<button onclick="toedit('bold', 'null')"><b>B</b></button>
<button onclick="toedit('italic', 'null')"><i>I</i></button>
<button onclick="toedit('underline', 'null')"><u>U</u></button>
<br />
<div class="textfield_css" id="textfield_id" contenteditable="true">?</div>
</body>
</html>
HTML:
@charset "utf-8";
/* CSS Document */
.textfield_css{
width:400px;
height:150px;
border:#666 1px solid;
cursor:text; /*Firefox Cursor Bug fixed*/
outline:none; /*Firefox Outline Bug fixed*/
font-size:14px;
font-family:Arial, Helvetica, sans-serif;
}
.textfield_css p{ /*IE Opera Bug fixed*/
margin:0px;
padding:0px;
}
HTML:
// JavaScript Document
function toedit(command, parameter){
document.getElementById("textfield_id").focus();
document.execCommand(command, false, parameter);
}
Weiß Jemand wo der Fehler sich versteckt ?
Zuletzt bearbeitet: