php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.03.2010, 04:55  
Erfahrener Benutzer
 
Registriert seit: 09.03.2009
Beiträge: 145
PHP-Kenntnisse:
Fortgeschritten
jGeee befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Ajax, jQuery - CKEDITOR Fehler bei Instanzierung

Hallo liebe Gemeinde

ich stoße grade auf ein IMHO komisches problem - vielleicht liegts auch nur daran das es gerade so spät ist, ... folgendes:


Ich lade content per $.ajax(); - diese funktion ist in einer weiteren funktion definiert, damit ich mir einiges an tipparbeit spare.. auszug:

Code:
function ajaxRequest(url, responseContainer, data, type){
    // show ajax loading indicator etc..
    $.ajax({
        type: 'post',
        url: url,
        data: data,
        cache:true,
        dataType: type,
        success: function(html){
            if(html){
                if(responseContainer=='#bc-content'){                   
                    $(responseContainer).html('<ul id="column1" class="column ui-sortable">'+html+'</ul>');
                    // check if dom elements loaded
                    if($('#saveArticle').length){
                        $.getScript('/adata/js/action.write.js', function() {
                            if(typeof do_action_write == 'function'){
                                alert('test1')
                                do_action_write();
                                alert('test2');
                            }
                        });  
                    }
                }
            }
        }
        // disable ajax loading indicator ...
    });
}
Zum Problem:

Die ajaxRequest-Funktion wird innerhalb $(document).ready(); aufgerufen sobald ich auf den entsprechenden menüpunkt klicke, die action.write.js wird nachgeladen, sobald der container #saveArticle auch geladen wurde,... soweit alles ok, alert test1 wird ausgegeben, meine funktion wird aufgerufen, alert test2 wird ausgegeben..

alles prima beim ersten aufruf! ok, ich klicke also in einem menüpunkt herum, und lade weiteren content per ajax, klicke ich nun wieder auf den menüpunkt, der mir auch die action.write.js laden soll, wird NUR alert test1 ausgegeben..test2 nicht.. drücke ich f5, ist wieder alles in ordnung.. also wird meine funktion innerhalb der action.write.js nur beim ersten request der hauptseite ausgeführt..
firebug zeigt mir auch keine fehlermeldung wie z.b. das do_action_write(); undefined seie.. das komische daran ist, die getscript funktion lädt laut firebug erfolgreich den code, jedoch wird die funktion nur einmal aufgerufen..

liegt es vllt. daran, dass die action.write.js beim 2. aufruf doppelt geladen wird und die funktionen sich überschreiben? - aber das kann auch nicht sein, weil ich den code der js-datei vorher im <script>-Tag der zu ladenden html datei stehen hatte, jedoch ist mir die getScript-Variante sympatischer

habe schon mehrere versuche gemacht, wie z.b. eine evalScript-Funktion, den code direkt per $.ajax & dataType: script laden usw.. hilft alles nichts, überall das selbe problem, dass meine funktion nur EINMAL ausgeführt wird, obwohl ich sie erst NACH dem ajaxRequest ausführen möchte... -.-

hatte ebenfalls schon http://www.php.de/javascript-ajax-un...-werten-2.html (Ajax nachladen mit dazugehörigen Javascript Werten) gelesen, jedoch betrachte ich diese variante als schwachsinnig, denn async sollte schon true sein...

danke schonmal

Geändert von jGeee (26.03.2010 um 09:12 Uhr).
jGeee ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.03.2010, 07:10  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Welchen tieferen Sinn hat es denn, action.write.js ständig neu zu laden?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 26.03.2010, 07:51  
Erfahrener Benutzer
 
Registriert seit: 09.03.2009
Beiträge: 145
PHP-Kenntnisse:
Fortgeschritten
jGeee befindet sich auf einem aufstrebenden Ast
Standard

keinen, das ist mir jedoch erst aufgefallen als ich den post geschrieben habe :P

hab ich schon geändert, jedoch ist es nicht die ursache des problems wie ich merke..

update:

was mir ebenfalls auffällt ist, wenn ich folgenden versuch mache, dass das script ab der else-bedingung von typeof einfach beendet..

Code:
// check if dom elements loaded
                    if($('#saveArticle').length){
                        if(typeof do_action_write != 'function'){
                            $.getScript('/adata/js/action.write.js', function() {
                            
                                alert('test1');
                                do_action_write();
                                alert('test2');
                            
                            });
                        }else{
                            alert('test3');
                            do_action_write();
                            alert('test4');
                        }
                    }
test3 wird jedoch ausgegeben, test4 nicht... seltsam, nicht eine fehlermeldung (laut firebug).. gibt es noch andere wege das script zu debuggen?


update2:

habe grad mal mit dem IE8 versucht, dieser gibt folgende fehlermeldung (beim 2. aufruf natürlich erst)

Meldung: Annahme ausgelöst und nicht aufgefangen.
Zeile: 23
Zeichen: 1618
Code: 0
URI: /adata/ckeditor/ckeditor.js


Es scheint am ckeditor zu liegen, ich probier alles mal ohne ihn zu initialisieren...

update 3:


tatsächlich.. die ursache liegt am ckeditor.. jetzt weiß ich wenigstens schonmal wo ich suchen soll.. andere bereits probleme damit gehabt?

Geändert von jGeee (26.03.2010 um 08:36 Uhr).
jGeee ist offline   Mit Zitat antworten
Alt 26.03.2010, 09:09  
Erfahrener Benutzer
 
Registriert seit: 09.03.2009
Beiträge: 145
PHP-Kenntnisse:
Fortgeschritten
jGeee befindet sich auf einem aufstrebenden Ast
Standard

So Problem gelöst. Für die anderen:

Es lag daran, dass die Instanz vom CKEDITOR wohl durch den anderen ajaxRequest verloren gegangen ist. Also rufe ich den editor nicht wie gewohnt über $('#field').ckeditor(); sondern über folgende funktion auf:

Code:
function loadEditor(id){
    var instance = CKEDITOR.instances[id];
    if(instance)
    {
        CKEDITOR.remove(instance);
    }
    CKEDITOR.replace(id);
}
jGeee ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fileupload via AJAX GSJLink HTML, Usability und Barrierefreiheit 13 17.05.2012 21:41
jQuery Ajax und $(this) Problem halskrause JavaScript, Ajax und mehr 8 01.03.2010 17:39
Ajax Anwendung, reines Ajax oder Ajax und Html jackie1983 JavaScript, Ajax und mehr 5 09.02.2010 16:50
jQuery Ajax BlackScorp JavaScript, Ajax und mehr 14 29.01.2010 13:37
AJAX - Variable von PhP erhalten auf möglichst simple Weise? SplitterWind JavaScript, Ajax und mehr 10 10.01.2010 04:34
[Erledigt] jquery ajax, event bei nachgeladenem div auslösen mad JavaScript, Ajax und mehr 9 20.08.2009 21:39
jQuery mit AJAX ohne ActiceX im IE? krush JavaScript, Ajax und mehr 2 11.08.2009 08:54
Ajax + PHP + jquery Accordion zusammenführen. gamerphil JavaScript, Ajax und mehr 0 30.04.2009 17:42
[Erledigt] jQuery Dateien nachladen Phoscur JavaScript, Ajax und mehr 7 14.03.2009 13:44
[Erledigt] Jquery Ajax Rückgabewert weiterverwenden heohni JavaScript, Ajax und mehr 5 26.02.2009 09:52
jQuery Plugin - so richtig? stayInside JavaScript, Ajax und mehr 5 23.02.2009 12:34
1111: AJAX meets PHP (indirectly) Nikolaus 2.0 Adventskalender 2008 5 15.12.2008 11:00
Drag & Drop via JQuery & Ajax --> Geht nicht :( Plague JavaScript, Ajax und mehr 2 23.10.2008 12:19
Probleme mit Sonderzeichen bei Ajax (prototype)... go1denboy JavaScript, Ajax und mehr 1 31.08.2008 18:44
AJAX: Session-Inhalt an PHP Curanai HTML, Usability und Barrierefreiheit 2 05.11.2007 15:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ckeditor jquery, jquery ckeditor, fehler: annahme ausgelöst und nicht aufgefangen., ckeditor ajax, annahme ausgelöst und nicht aufgefangen, annahme ausgelöst und nicht aufgefangen jquery, ckeditor jquery destroy, ckeditor ajax nachladen, jquery annahme ausgelöst und nicht aufgefangen, \annahme ausgelöst und nicht aufgefangen\, annahme ausgelöst und nicht aufgefangen., meldung: annahme ausgelöst und nicht aufgefangen., jquery \annahme ausgelöst und nicht aufgefangen\, ckeditor mehrere instanzen, ckeditor nachladen, jquery getscript, ck editor per js laden, ckeditor ajax jquery destroy, jquery getscript ckeditor, \annahme ausgelöst und nicht aufgefangen\ ckeditor

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:26 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum