Editor hängt

Gesperrt
conti
Beiträge: 5
Registriert: Fr 20. Mai 2005, 12:26
Kontaktdaten:

Editor hängt

Beitrag von conti »

v4.45-r1

Hallo,

ich habe festgestellt, dass bei einem simplen Formular

Code: Alles auswählen

<FORM action=index.php method=post>
<INPUT type=hidden value=xxxx name=page>
<INPUT type=hidden value=d6a9a name=xxxx>
<INPUT type=hidden value=1 name=id>
<INPUT type=submit value=OK name=submit>
</FORM>
in dem id vorkommt, der Editor hängt.
Ich kann dann die Container in den Artikeln nicht mehr bearbeiten, da
ein Scriptfehler vom IE ausgegeben wird.

Ich habe einige Zeit gebraucht um das herauszufinden.
Beim testen mit z.B. ix usw. statt id funktioniert das ganze wieder.

Nun ist es so, das ich id unbedingt für mein Formular benötige.

Was könnte man tun, um das glatt zu bügeln.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Re: Editor hängt

Beitrag von emergence »

conti hat geschrieben:Was könnte man tun, um das glatt zu bügeln.
na ja man könnte den fehler beheben...

-> includes/include.con_editcontent.php

findet sich in einer 4.4.5r1

Code: Alles auswählen

        // loop through all elements
        for (var i=0; i < a.length; i++) {
                aId = a[i].id;
                aIdPrefix = aId.substr(0,4);

                // search for the id which containes HTML
                if (aIdPrefix == 'HTML') {

                        // check if its an 'contentEditable' Field
                        if (a[i].isContentEditable == true) {

                                 // read out the content
                                 var aContent = a[i].innerHTML;

                                 // split the idname in data - datas 0 is the Fieldname   2 is the typeid
                                 var data = aId.split("_");

                                 if ( aContent == "" ) {
                                    aContent = "!!";
                                    
                                 } else {

                                    // if there is an | in the text set a replacement chr because we use it later as isolator
                                    while( aContent.search(/\|/) != -1 ) {
                                        aContent = aContent.replace(/\|/,"§%%§");
                                    }
                                 }
                                 
                                 // build the string which will be send
                                 str += idart +'|'+ data[2] +'|'+ aContent +'|'+ data[0] +'||';

                        }
                        
                        
                        
                        
                        
                }

        }
ich würde folgendes verwenden...

Code: Alles auswählen

        // loop through all elements
        for (var i=0; i < a.length; i++) {
                aId = a[i].id;

            if (aId != '' && typeof aId == 'string') {

                aIdPrefix = aId.substr(0,4);

                // search for the id which containes HTML
                if (aIdPrefix == 'HTML') {

                        // check if its an 'contentEditable' Field
                        if (a[i].isContentEditable == true) {

                                 // read out the content
                                 var aContent = a[i].innerHTML;

                                 // split the idname in data - datas 0 is the Fieldname   2 is the typeid
                                 var data = aId.split("_");

                                 if ( aContent == "" ) {
                                    aContent = "!!";
                                    
                                 } else {

                                    // if there is an | in the text set a replacement chr because we use it later as isolator
                                    while( aContent.search(/\|/) != -1 ) {
                                        aContent = aContent.replace(/\|/,"§%%§");
                                    }
                                 }
                                 
                                 // build the string which will be send
                                 str += idart +'|'+ data[2] +'|'+ aContent +'|'+ data[0] +'||';

                        }
                        
                        
                }        
                        
                        
            }

        }
hmm... hab das jetzt aber nur auf einem ie getestet...

wirklich neu ist ja nur diese überprüfung:

Code: Alles auswählen

            if (aId != '' && typeof aId == 'string') {

...

            }
im prinzip werden zwei dinge zusätzlich überprüft
1. ob das html element wirklich keine leere id hat
2. und wenn ja ob die id wirklich ein string ist
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

verschoben nach Bugs 4.5.x -> da es auch mit dem cvs_head auftritt
*** make your own tools (wishlist :: thx)
conti
Beiträge: 5
Registriert: Fr 20. Mai 2005, 12:26
Kontaktdaten:

Beitrag von conti »

Funktioniert jetzt bestens.
Vielen Dank :D
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

habe das korrigiert.
Gesperrt