Anker und ID´s

Gesperrt
erikawiese
Beiträge: 118
Registriert: Fr 23. Feb 2007, 22:06
Kontaktdaten:

Anker und ID´s

Beitrag von erikawiese »

Bevor ich auf die Suche verwiesen werde:
Ja ich hab mich ausführlich mit Anker und Contenido / TinyMCE beschäftigt (viel mehr als das mir lieb ist)

Und bevor man mich zu Moxiecode schickt:
Hab da schon erfolglos recherschiert und mein English kann das nicht beschreiben.

Zum Problem:
Meine Anker benötigen ID´s, damit die JS-Scrolleiste funktioniert. TinyMCE erzeugt Anker in diesem Stil:

Code: Alles auswählen

<A  name=rueckblick></A>
was ich benötige ist das hier:

Code: Alles auswählen

<A  id="rueckblick"></A>
Wo muss ich denn eingreifen um das zu ändern? Geht das überhaupt?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

eingreifen müsste man vermutlich hier:
js/tinymce/themes/advanced/jscripts/anchor.js

und wenn man sich dort den code etwas genauer ansieht, wird man bemerken das id dort für was anderes verwendet wird... somit
Geht das überhaupt?
ich sag da nein...
*** make your own tools (wishlist :: thx)
erikawiese
Beiträge: 118
Registriert: Fr 23. Feb 2007, 22:06
Kontaktdaten:

Beitrag von erikawiese »

emergence hat geschrieben: ich sag da nein...
Ich hab´s befürchtet *grrrr*, vielen Dank für die Antwort.
trixta
Beiträge: 165
Registriert: Di 26. Apr 2005, 12:53
Kontaktdaten:

Beitrag von trixta »

Benutz doch getElementbyName statt getElementbyID in deinem JavaScript:

http://de.selfhtml.org/javascript/objek ... ts_by_name
erikawiese
Beiträge: 118
Registriert: Fr 23. Feb 2007, 22:06
Kontaktdaten:

Beitrag von erikawiese »

trixta hat geschrieben:Benutz doch getElementbyName statt getElementbyID in deinem JavaScript:
Ich selber hab das Script nicht geschrieben. Der Entwickler ist der hat sich aber grundlegende GEdanken gemacht, warum er mit ID´s arbeitet (nicht zuletztt der Standardkonformität wegen).
Trotzdem Danke ;-)
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

Naja, wenn's denn sein muss, kann man die Datei "contenido/external/wysiwyg/tinymce2/jscripts/tiny_mce/themes/advanced/jscripts/anchor.js" ändern zu:

Code: Alles auswählen

var action, element;

function init() {
	tinyMCEPopup.resizeToInnerSize();

	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
	var anchor = tinyMCE.getParentElement(inst.getFocusElement(), "a", "name");
	var img = inst.getFocusElement();
	action = 'insert';

	if (anchor != null) {
		element = anchor;
		action = "update";
	}

	if (tinyMCE.getAttrib(img, "class") == "mceItemAnchor") {
		element = img;
		action = "update";
	}

	if (action == "update")
		document.forms[0].anchorName.value = element.nodeName == "IMG" ? element.getAttribute("title") : element.getAttribute("name");

	document.forms[0].insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true);
}

function insertAnchor() {
	var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
	var name = document.forms[0].anchorName.value;

	tinyMCEPopup.execCommand("mceBeginUndoLevel");

	if (action == "update") {
		if (element.nodeName == "IMG")
			element.setAttribute("title", name);
		else
			element.setAttribute("name", name);
			element.setAttribute("id", name);
	} else {
		var rng = inst.getRng();

		if (rng.collapse)
			rng.collapse(false);

		name = name.replace(/&/g, '&');
		name = name.replace(/\"/g, '"');
		name = name.replace(/</g, '<');
		name = name.replace(/>/g, '>');

		html = '<a name="' + name + '" id="' + name + '"></a>';

		tinyMCEPopup.execCommand("mceInsertContent", false, html);
		tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
	}

	tinyMCEPopup.execCommand("mceEndUndoLevel");

	tinyMCE.triggerNodeChange();
	tinyMCEPopup.close();
}
Vor dem Aufruf des TinyMCE dann unbedingt des Browsercache leeren. Außerdem wird das natürlich nur funktionieren, wenn für das <a>-Element auch das Attribut "id" zugelassen ist (Stichwort: valid_elements, extended_valid_elements).
erikawiese
Beiträge: 118
Registriert: Fr 23. Feb 2007, 22:06
Kontaktdaten:

Beitrag von erikawiese »

Vielen Dank Dodger, *ich liebe deine Lösungen*
Allerdings produziert die TinyMCE Engine jetzt Fehler!
stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony »

Seit wann produziert Tiny solche Ausdrücke:

Code: Alles auswählen

<A  name=rueckblick></A>
Kommt sowas in HTML 4.0 vor? Bei mir basieren alle Seite auf XHTML, da passiert das auf jeden Fall nicht.
erikawiese
Beiträge: 118
Registriert: Fr 23. Feb 2007, 22:06
Kontaktdaten:

Beitrag von erikawiese »

stony hat geschrieben:Seit wann produziert Tiny solche Ausdrücke:
Genaugenommen wird standardmäßig so etwas produziert:

Code: Alles auswählen

<A title=rueckblick name=Rueckblick></A>
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Unwarscheinlich (fehlende Anführungszeichen, Tags groß geschrieben). Das ist nicht der tinyMCE, das ist das Inline-Editing. Um das zu verhindern, konsequent FF verwenden bzw. Inline-editing deaktivieren (suche im Forum).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony »

genau das meine ich doch auch! Tiny produziert im validen html code, sowohl bei HTML 4.1 oder XHTML.

gruß stony
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

stony hat geschrieben:Tiny produziert im validen html code, sowohl bei HTML 4.1 oder XHTML.
Gerade in Bezug auf die Anker aber wohl eher nicht. Egal ob ich HTML 4.01, XHTML 1.0 oder 1.1 verwende, sehen die Anker im Quelltext so aus:

Code: Alles auswählen

<a title="test" name="test"></a>
Das geht für XHTML 1.0 evtl. noch in Ordnung, aber nicht für 1.1:

http://de.selfhtml.org/html/xhtml/unter ... eise_anker
stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony »

ups, stimmt bei 1.1 gilt es dann nicht mehr... *Besserwisser!*

aber das kann man ihm doch relativ einfach beibringen ;-)
Gesperrt