Ergebnis 1 bis 7 von 7
  1. #1
    aaki ist offline Grünschnabel
    registriert
    28-03-2005
    Beiträge
    6

    DOM-Tree im Firefox nicht aktualisiert...

    hey ihr!

    ich hab da ein problem. und zwar versuche ich gerade HTMLArea 3.0 auf meine bedürfnisse anzupassen.

    --- für alle die nicht wissen was HTMLArea ist ---
    ein online-wysiwyg-editor auf javascript-basis, der in allen neueren gecko-varianten und IE's ab v5 laufen soll.
    ---------------------------------------------------------

    links einfügen ist bereits implementiert, jedoch soll meine version darüberhinaus den links eine id zuordnen, eine klasse, usw.
    im IE funzt das schon einwandfrei! im firefox nicht! bei letzterem klappt es genau einmal, dann nicht mehr! und zwar wird im firefox aus irgendeinem grund der dom-tree nicht aktualisiert. (zu erwähnen wäre noch, dass der editierbare bereich ein iframe ist, dessen designMode auf on gestellt wird).

    ein codeausschnitt, was ich da so mache:
    Code:
    /************************************************************************************************************
     * Funktion, die aufgerufen wird, wenn der Benutzer auf den Button Link einfügen klickt! ************************************************************************************************************/
     
    HTMLArea.prototype._NPcreateLink = function(link) {
    	var editor = this;
    	var outparam = null;
    	
    	if(checkEditable(editor))
    		return false;
    		
    	if (typeof link == "undefined") {
    		link = this.getParentElement();
    		if (link && !/^a$/i.test(link.tagName))
    			link = null;
    	}
    	if (link) outparam = {
    		f_href	: HTMLArea.is_ie ? editor.stripBaseURL(link.href) : link.getAttribute("href"),
    		f_title	: link.title,
    		f_id	: link.id,
    		f_class	: link.className	
    	};
    	this._popupDialog("NPclQuest.html", function(param) {
    		
    		if (!param)
    			return false;
    		var a = link; // falls link markiert wurde wird dieser nur bearbeitet
    		if (!a) { // es soll ein neuer link eingefügt werden
    			editor._doc.execCommand("createlink", false, param.f_href);
    			allLinks = editor.focusEditor().links;
    			for (var i = 0; allLinks.length; i++) { 
    				if (allLinks[i].id == "") { // sucht den link, der noch keine id hat. alle anderen haben eine!
    					a = allLinks[i]; // link gefunden
    					break; 
    				}
    			}
    		}
    		if (!HTMLArea.is_ie && !a) { // Mozilla hat ihn immer noch nicht gefunden
    			//an der müsste was für den mozilla passieren
    		}
    		a.title = param.f_title.trim();		
    		a.className = param.f_class.trim();
    		a.id = param.f_id.trim();
    		editor.selectNodeContents(a);		
    		editor.updateToolbar();
    	}, outparam);
    };
    legende:
    die klasse HTMLArea, die mit dieser funktion erweitert wird, ist bereits erwähnter Online-Editor
    es wird ein popup geöffnet über die funktion _popupDialog.
    function(param) { ... } wird ausgeführt, nachdem "ok" im popup gedrückt wurde

    nunja, um den fehler noch klarer einzugrenzen:
    bei firefox ist editor.focusEditor().links.length immer gleich, egal wie viele links man eingefügt hat. nur beim ersten editieren einer seite wird das array um den ersten link erweitert, der eingefügt wird.
    manuel kann man das problem beheben, indem man im firefox nach einfügen des ersten links auf aktualisieren geht. anders als beim ie bleibt der inhalt des iframes erhalten und der domtree wird scheints aktualisiert, so dass es auch beim 2. einfügen eines links klappt. :whacky:

    hossa, weiss jetzt auch nicht, was ich weiter schreiben soll...
    wers ma testen will:
    das original
    meine version (die buttons befinden sich rechts neben den combo-boxen, leider kein bild verlinkt)

    für freundliche ratschläge wär ich echt dankbar! vielleicht hat ja einer mal ein ähnliches problem gehabt... oder hat auch schon seine erfahrungen mit htmlarea gehabt... dann kann er mir auch gern schreiben, zum austausch von HTMLArea-Addons

    ich vergaß: 10 tage, nach dem ich angefangen habe wie wild am editor zu basteln wurde das forum auf htmlarea.com eingestellt. wenig später kam dann die nachricht:
    "htmlarea 2 and 3 have been discontinued"

  2. #2
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: DOM-Tree im Firefox nicht aktualisiert...

    Ja schade, obwohl es der beste Editor ist.

    Ich benutze ihn auch habe mich aber noch nicht durch den ganzen Code gewühlt (da er soweit bei mir funktionert wie ich es brauchte)

    Ich schau's mir heut Nachmittag mal an.

  3. #3
    aaki ist offline Grünschnabel
    registriert
    28-03-2005
    Beiträge
    6

    Red face AW: DOM-Tree im Firefox nicht aktualisiert...

    hey, das wär nett!

    man wird ja irgendwann betriebsblind und sieht die einfachste lösung nicht

    also ich hab jetzt "übergangsweise" folgendes eingefügt:

    Code:
    if (!HTMLArea.is_ie) {
    	location.reload(); //an der stelle müsste was für den mozilla passieren
    }
    bzw. abgeändert. nun, das geht solange, wie dieser editor für sich alleine steht, aber in dem frameset, wo er mal hinsoll, wird das vermutlich nicht gehn :mooh:

    viele grüße
    aaki

  4. #4
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: DOM-Tree im Firefox nicht aktualisiert...

    Du hast es offensichtlich gelöst?
    Mit:

    var allLinks = editor._doc.links;

  5. #5
    aaki ist offline Grünschnabel
    registriert
    28-03-2005
    Beiträge
    6

    AW: DOM-Tree im Firefox nicht aktualisiert...

    nein, leider nicht.
    var allLinks = editor._doc.links und
    var allLinks = editor.focusEditor().links sind semantisch äquvalent, da focusEditor() eine funktion ist, die den iframe des editors focusiert und _doc zurückgibt...

    aber ich habe dennoch des rätsels lösung gefunden (hoff ich jedenfalls )
    mit folgendem code werden id, class usw. auch gesetzt, wenn der a-node gesplittet werden muss. ausserdem wird der iframe neu initialisiert und der aktuelle domtree steht dem firefox auch beim nächsten link einfügen zur verfügung!

    Code:
    HTMLArea.prototype._NPcreateLink = function(link) {
    	var editor = this;
    	var outparam = null;
    	
    	if(checkEditable(editor))
    		return false;
    		
    	if (typeof link == "undefined") {
    		link = this.getParentElement();
    		if (link && !/^a$/i.test(link.tagName))
    			link = null;
    	}
    	if (link) outparam = {
    		f_href	: HTMLArea.is_ie ? editor.stripBaseURL(link.href) : link.getAttribute("href"),
    		f_title	: link.title,
    		f_id	: link.id,
    		f_class	: link.className	
    	};
    	this._popupDialog("NPclQuest.html", function(param) {
    		
    		if (!param)
    			return false;
    		var a = link;
    		if (!a) {
    			editor._doc.execCommand("createlink", false, param.f_href);
    			var allLinks = editor._doc.links;
    			for (var i = 0; allLinks.length; i++) {
    				try { // das try bezieht sich eigentlich nur auf den mozilla!
    					if (allLinks[i].id == "") {
    						a = allLinks[i];
    						a.title = param.f_title.trim();
    						a.className = param.f_class.trim();
    						a.id = param.f_id.trim();
    						//break; 
    					}
    				}
    				catch(e) {
    					break;
    					// im Array allLinks befinden sich irgendwelche undefinierten 
    					// nodes. hiermit werden diese ignoriert!
    				}
    			}
    		}
    
    		editor.selectNodeContents(a);		
    		editor.updateToolbar();
    		
    		if (!HTMLArea.is_ie) {// && !a) { // für den Mozilla wird der IFrame neu initialisiert!
    			var doc = editor._iframe.contentWindow.document;
    			editor._doc = doc;
    			var html = editor.getHTML();
    
    			doc.open();
    			doc.write(html);
    			doc.close();
    		}
    	}, outparam);
    };
    nun, der code ist ein wenig seltsam, aber nach eingehendem studieren der htmlarea.js, weiss man, dass selbst so erfahrene leute, wie der entwickler von htmlarea mit browserbugs zu kämpfen haben.

    man findet zitate wie:
    wonder if this works...
    und anderes

    liebe grüße
    aaki

  6. #6
    cebe ist offline Grünschnabel
    registriert
    22-12-2005
    Beiträge
    4

    AW: DOM-Tree im Firefox nicht aktualisiert...

    Ohhh

    Wie hast du den designMode beim FF eingeschaltet? Bei mir will das nicht funken, ich will das ganze selber basteln, hab mir noch nie so n Teil angeschaut und bei mir solls wirklich ganz simpel sein

    siehe
    http://www.secret-project.ch/form/

  7. #7
    Avatar von rasputin
    rasputin ist offline Lounge-Member
    registriert
    31-10-2001
    Beiträge
    3.102

    AW: DOM-Tree im Firefox nicht aktualisiert...

    Zitat Zitat von cebe
    Wie hast du den designMode beim FF eingeschaltet? Bei mir will das nicht funken, ich will das ganze selber basteln, hab mir noch nie so n Teil angeschaut und bei mir solls wirklich ganz simpel sein
    argl hast du wirklich alle threads angefangen, die etwas mit dem thema zu tun haben? schon mal was von google und eigeninitiative gehört?
    du versuchst dich wirklich mit allen mitteln unbeliebt zu machen...

Ähnliche Themen

  1. Warum Firefox?
    Von ernst_stavro_b. im Forum Tools und Programme
    Antworten: 46
    Letzter Beitrag: 31-03-2008, 12:09
  2. Problem - Open New Window - in Firefox
    Von therog im Forum JavaScript
    Antworten: 18
    Letzter Beitrag: 23-10-2006, 23:19
  3. layer problem mit Firefox: Carolina braucht Hilfe
    Von carolina im Forum JavaScript
    Antworten: 25
    Letzter Beitrag: 11-03-2005, 15:28
  4. Problem mit dem Firefox (jaaa, sowas gibts)
    Von RedSpice im Forum Tools und Programme
    Antworten: 2
    Letzter Beitrag: 26-12-2004, 12:47
  5. js Tree wird nicht aktualisiert
    Von thomaspk im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 02-11-2004, 10:27

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •