JavaScript Text Editor - problem

Ker sem nov v JavaScript programiranju imam eno vprašanje za tukajšnje mojstre.

Preko različnih tutorialov sem si sestavil majhen urejevalnik besedila. Podoben temu v katerem pišemo komentarje. TinyMCE in podobni mi niso všeč. Nastal pa je sledeč problem:

Koda

<script type="text/JavaScript">
var urejevalnik = new Urejevalnik();

window.onload = function() {
    urejevalnik.render($('novica'));
};
</script>

Deluje samo kadar nastavim:

<div id="novica"></div>

Vso stvar mi pokaže pravilno in tudi deluje bp.

Potreboval pa bi sledeče:

<textarea id="novica" name="novica"><?php if(isset($_POST['novica'])) echo $_POST['novica']; ?></textarea>
Ker želim urejeno besedilo shranjevati v bazo MySQL.

Torej v DIV tagu stvar deluje v TEXTAREA tagu pa ne... Kako lahko to uredim?

Za vaše odgovore se vam že vnaprej zahvaljujem.

LP

5 odgovorov

Poglej v urejevalnik (javascript) kaj potem delaš s tem objektom (div, textarea).

Fino bi bilo, ce bi pokazal se kodo metode render() razreda urejevalnik, da vidimo, kaj se tam notri dogaja.

V kodi sem našel tole:

render: function(urejevalnik) {
    return this.build(this, urejevalnik);
    },
build: function(self, urejevalnik) {
        return component = new Element('img', {
            'src': self.options.icon,
            'styles': {
                'cursor': 'pointer'
            },
            'events': {
                'click': function() {
                    self.execute(urejevalnik, null);
                },
                'mouseenter': function() {
                    this.src = self.options.hover;
                },
                'mouseleave': function() {
                    this.src = self.options.icon;
                }
            }
        });

Tole ne naredi nic drugega, kot kreira nov object razreda Element (ocitno IMG), poslje pa mu nek objekt z nastavitvami, ki, kot kaze, dolocijo source in style imaga in mu ocitno pripopajo nekaj event listenerjev. Ta koda se vedno ne pocne nic konkretnega, iz cesar bi se dalo razbrati, zakaj v DIV deluje, v TEXTAREA pa ne :)

Mogoce se zadeve lotimo rajsi z druge strani, povej, zakaj hoces to na vsak nacin stlaciti v TEXTAREA namesto v DIV. Predvidevam, da bi zadevo pac rad uporabil v formi, pa se ti zdi to najelegantnejsi nacin. Povsem mozno je, da se to da resiti elegantneje na povsem drug nacin, je pa to povsem odvisno od nacina, po katerem tale tvoj WYSIWYG editor deluje. Ce bi v bazo rad shranil kar HTML kodo, lahko to zelo enostavno naredis tako, da ob submitu forme najprej prepises vsebino innerHTML tega DIVa v nek skriti TEXTAREA in sele nato submitas. Ampak, da ne dolgovezim in govorim prevec na pamet, malo razlozi, kaj bi sploh rad dosegel in kako naj bi ta tvoj urejevalnik sploh deluje.

Takole je:

Mam eno malo skriptico za novičke na eni strani. Ampak včasih bi rad spremenu pisavo, dodau bold pa te zadeve. In da ne pišem zmerej tagov mam ta urejevalnik. S PHP-jem potem iz vsakega vnosnega polja poberem vsebino. Naslov, avtor in novica so polja.

Pogruntu sm da tale javascript creata 'iframe' v katerega vpisujem tekst in ga urejam. Se mogoče da iz iframe-a s PHP-jem povlečt vsebino?