• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Image maps/areas - Unterschiede IE / FF

na jetzt gerade versucht er was auch immer in ein img-objekt einzufüghen.
der ie lässt nur validen code über innerHTML zu.
Also, ich tue es mir nicht an, in absolut und total undokumentierte Ext Quellen zu sehen (bei 3.0 waren noch ein paar Kommentare drin, bei 3.1 is nix mehr).

Übrigens werden auch bei FF die map/areas nicht IN das img eingefügt, sondern als Geschwister in einen Knoten runter dem selben super div Knoten. Darum funzt es wohl auch in FF. Nur ist in Ext bei IE eben genau da ein Fehler drin.

Ext fügt sowieso oft seine eigenen div/Knoten ein.

Jedenfalls macht appendAfter etwas in IE, aber eben nicht richtig.

So ich nehm jetzt ne Mütze Schlaf und dann mach ich meine (derzeit letzte mir bekannte) neue Lösung. Theoretisch sollte die klappen. Schau mer mal.
 
Also, ich tue es mir nicht an, in absolut und total undokumentierte Ext Quellen zu sehen (bei 3.0 waren noch ein paar Kommentare drin, bei 3.1 is nix mehr).
du hast es immer noch nicht kapiert. das hat nichts mit ext zu tun. ext ruft nur innerhtml auf (was auch sonst) wenn du einen string übergibst.

Übrigens werden auch bei FF die map/areas nicht IN das img eingefügt, sondern als Geschwister in einen Knoten runter dem selben super div Knoten. Darum funzt es wohl auch in FF. Nur ist in Ext bei IE eben genau da ein Fehler drin.
nein, in diesem fall macht der ie es richtig. wenn man überhaupt von richtig und falsch sprechen kann bei einer nicht standard funktion.

Jedenfalls macht appendAfter etwas in IE, aber eben nicht richtig.
sagst du.
 
Übrigens werden auch bei FF die map/areas nicht IN das img eingefügt, sondern als Geschwister in einen Knoten runter dem selben super div Knoten. Darum funzt es wohl auch in FF. Nur ist in Ext bei IE eben genau da ein Fehler drin.
Das ist zufall, die useMap ist eine Eigenschaft eines Bildes - kein Knoten! Während die map selber ein HTML Element ist, also ein Knoten, der auch in das Dokument eingegfügt werden muss.
 
Das ist zufall, die useMap ist eine Eigenschaft eines Bildes - kein Knoten! Während die map selber ein HTML Element ist, also ein Knoten, der auch in das Dokument eingegfügt werden muss.
@schlauer
Um die anderen Leser hier nicht zu verwirren, wäre es nützlich, wenn Du Dich bitte nicht über Ext JS ausläßt, das Du offensichtlich nicht ansatzweise kennst. Natürlich ist useMap kein Knoten. Hat auch niemand behauptet!

Wie ich weiter oben schrieb, fügt Ext JS diese zusätzlichen Knoten für die map/area Definitionen parallel zum img Element unter dem selben Ober-Knoten ein - und das macht Ext in FF richtig, in IE eben falsch.

Darum schrieb ich oben dies, wobei das fett / kursiv eingefügte meine Worte präzisiert:

Übrigens werden von Ext JS auch bei FF die map/areas nicht IN das img eingefügt, sondern als Geschwister in einen Knoten runter dem selben super div Knoten. Darum funzt es wohl auch in FF. Nur ist in Ext bei IE eben genau da ein Fehler drin.

Und bitte erspar es mir und den anderen Lesern, in Deiner bekannten "schlauen" Art jetzt mit mir darüber diskutieren zu wollen. Ich werde es nicht.

Guats Nächtle!
 
du hast es immer noch nicht kapiert. das hat nichts mit ext zu tun. ext ruft nur innerhtml auf (was auch sonst) wenn du einen string übergibst.
Falsch, denn Ext behauptet Dinge, die es nicht einhält. Deine Aussage wäre richtig, wenn z.B. in der Doku sinngemäß stünde: "...das macht Ext per innerHtml und deswegen nur soweit möglich...".

Da steht aber nada, niente, rien du tout, nichts! Generell.

nein, in diesem fall macht der ie es richtig. wenn man überhaupt von richtig und falsch sprechen kann bei einer nicht standard funktion
IE schon, nur eben Ext nicht.

Also bitte... was soll das? Ich habe das gestern >12 mal getestet in diversen Konstellationen. Kann Dir sogar Screenshots vom DOM zeigen, wenn-de-willst.
 
Mann.. wenn ExtJS hier nicht das tut, was du willst, dann mach's doch nativ - ist nicht schwer und wahrscheinlich auch nicht mehr Code... und du hast die Kontrolle darüber, was gemacht wird. Auch kannst du das dann dokumentieren, wie du willst.

Dein Problem ist nämlich nicht vorhanden, da die Lösung dir bekannt ist und du sie nur umsetzen musst.

Auch ist es zur Problemdarstellung in einer Programmiersprache unablässlich CODE zu präsentieren (ein Screenshot der DOM-Struktur ist da überhaupt nicht hilfreich, da nicht gezeigt werden kann, wie dieses DOM zustande kommt).

Auch Meinungen (die du gerne haben kannst) sind nicht besonders hilfreich - sie verleiten nur dazu, ihnen zu widersprechen. Wenn du deine Zeit nicht vergeuden willst (was du aber anscheinend willst) solltest du dich etwas präziser/fachlicher ausdrücken, wenn du ein Problem hast und hier im Forum es diskutiert/behoben haben willst.

Auch ist es wenig ratsam Personen, die von der Grundeinstellung dazu geneigt sind dir zu helfen, zu beschimpfen/beleidigen. Auch wenn du nicht "everybodys darling" sein willst sollte man es sich mit Leuten, von denen man etwas will, nicht verscherzen.

So... das musste jetzt mal raus.
 
@schlauer
Um die anderen Leser hier nicht zu verwirren, wäre es nützlich, wenn Du Dich bitte nicht über Ext JS ausläßt, das Du offensichtlich nicht ansatzweise kennst.
Nur um deine Großmaul zu stopfen und weil es mich (und ich glaube auch einige andere hier) ankotzt, von dir ständig nur leeres Gewäsch vorgesetzt zu bekommen, habe ich mich hingesetzt und in ca. einer halben Stunde ein funktionierendes Beispiel mit ExtJS gebaut - das ich tatsächlich bis vor einer halben Stunde nicht angefaßt hatte, deshalb ist das Beispiel sicher nicht sauber, z.b. würde ich die Events auch mit ExtJs zuweisen, aber es zeigt wie es gehen könnte.

Mit einem Beispiel von DIR, hätten wir dir vermutlich innerhalb kürzester Zeit helfen können, so hat's halt dann 3 Tage gedauert. Aber du hast anscheind die Zeit.

Nebenbei hab ich zumindest ein und vermutlich auch DAS Problem, im IE gelöst. In meinem Beispiel funktioniert die imageMap auch im IE 6. Hier tritt ein altbekanntes Problem des IE auf, der keine Elemente mit Namen in die Collection einordnen, das ist definitiv kein ExtJs Problem.

JA, ich schwätze schlau daher, weil ich mich lange genug damit beschäftigt habe, während du nur in Javascript kleine Null bist.
PHP:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
</style>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>

<script type="text/javascript">
Ext.onReady(function(){
    var win = new Ext.Window({
               applyTo:'hello-win',
                layout:'fit',
                width:600,
                height:400,
                closeAction:'hide',
                plain: true,

                items: new Ext.TabPanel({
                    applyTo: 'hello-tabs',
                    autoTabs:true,
                    activeTab:0,
                    deferredRender:false,
                    border:false
                }),

                buttons: [{
                    text:'Submit',
                    disabled:true
                },{
                    text: 'Close',
                    handler: function(){
                        win.hide();
                    }
                }]

				});
      win.show(this);
		createUsemap();

});
function createUsemap() {
	var dh = Ext.DomHelper;
	var img = dh.append('out', {
	tag: 'img',
	src: 'bilder/foto1.jpg'
	});
	var IE = /*@cc_on!@*/false; 
	var map = IE ? document.createElement('<map name="dyn">')
	: document.createElement('map');
	map.name = 'dyn';
	
	createArea(map, '0,168,90,183');
	createArea(map, '50,184,90,199');
	createArea(map, '50,200,90,215');
	document.body.appendChild(map);
	img.useMap = '#' + map.name;
}

function createArea(map, coords, func) {
	var area = Ext.DomHelper.createDom({
	tag: 'area',
	coords: coords,
	//href: 'javascript:' + coords,
	href: '#',
	shape:'rect'
	});
	area.onclick = function(e){
		alert('ich bin' + coords);
	};
	map.appendChild(area);
	return area;
}
</script>
</head>
<body >
<div id="hello-win">    <div class="x-window-header">Hello Dialog</div>
    <div id="hello-tabs">
        <!-- Auto create tab 1 -->
        <div class="x-tab" title="Hello World 1" id="out">
            <p>Hello...</p>
        </div>
    </div>
</div>
 </body>
</html>
Die Pfade zu ExtJS und dem Bild müssen natürlich angepaßt werden
 
Falsch, denn Ext behauptet Dinge, die es nicht einhält. Deine Aussage wäre richtig, wenn z.B. in der Doku sinngemäß stünde: "...das macht Ext per innerHtml und deswegen nur soweit möglich...".
und die stelle habe ich dir schon 2 mal gezeigt.
Code:
If useDom is false, then the string is used as innerHTML.
damit sollte klar sein, das sie diesen mit innerHTML einfügen(wie auch sonst).

Wie ich weiter oben schrieb, fügt Ext JS diese zusätzlichen Knoten für die map/area Definitionen parallel zum img Element unter dem selben Ober-Knoten ein - und das macht Ext in FF richtig, in IE eben falsch.
wenn du über innerHTML eine map unter/in ein img einfügst, bringt der IE einen fehler und der FF fügt unter das img-objekt 2 child-elemente ein, ein img und die map.
das macht der ff falsch und der ie richtig.
 
Nebenbei hab ich zumindest ein und vermutlich auch DAS Problem, im IE gelöst. In meinem Beispiel funktioniert die imageMap auch im IE 6. Hier tritt ein altbekanntes Problem des IE auf, der keine Elemente mit Namen in die Collection einordnen, das ist definitiv kein ExtJs Problem.
wobei das auch durch ext beachtet wird(selbst wenn useDom auf true gesetzt ist und damit nicht über innerHTML gegangen wird).
Code:
function createUsemap() {
    var dh = Ext.DomHelper;
    dh.useDom=true;
    dh.append('out', [
      {tag: 'img', src: 'http://de.selfhtml.org/html/grafiken/anzeige/karte.png', useMap: '#xxx' },
      {tag: 'map', name: 'xxx', children: [
        {tag: 'area', coords: '0,168,90,183', href: 'www.google.de', shape:'rect' },
        {tag: 'area', coords: '50,184,90,199', href: '#', shape:'rect' },
        {tag: 'area', coords: '50,200,90,215', href: '#', shape:'rect' }
      ]}
    ]);
}
funktioniert auch. wobei bis das immer als string übergibt(weil ja über innerhtml gegangen wird).
Code:
function createUsemap() {
    var dh = Ext.DomHelper;
    dh.append('out', '<img src="http://de.selfhtml.org/html/grafiken/anzeige/karte.png" useMap="#xxx" />'
                   + '<map name="xxx">'
                   + '  <area coords="0,168,90,183" href="#" shape="rect" />'
                   + '  <area coords="50,184,90,199" href="#" shape="rect" />'
                   + '  <area coords="50,184,90,199" href="#" shape="rect" />'
                   + '</map>'
             );
    
}
 
Zuletzt bearbeitet:
wobei das auch durch ext beachtet wird(selbst wenn useDom auf true gesetzt ist und damit nicht über innerHTML gegangen wird).
Klasse! Das mit der Verschachteltung, hatte ich gestern Nacht nicht mehr richtig auf die Reihe gekriegt, ich hatte dann irgendwann auch keinen Bock mehr. Aber dachte mir schon, dass da ExtJS wesentlich mehr zu bieten hat.
 
@ein schlauer
Also, Schlauer, Du verblüffst mich! Denn Du bist ein seltener und höchst interessanter Fall von Foren-Psychologie! Aber das ist ein anderes Thema...

Jetzt frage ich mich nur, cui bono? Was willst Du mir (oder nur Dir selbst?) mit diesem Beispiel zeigen, - außer daß Du in der Lage bist, in ein Ext Panel ein Beispiel einzublenden, woran ich natürlich nie gezweifelt habe.

Darin sehe ich nichts, was ich in meine Situation übertragen könnte, die ich im übrigen gar nicht detaillert dargestellt hatte, weil sich der relevante Code schlecht aus dem gesamten Ding extrahieren läßt. Mehr im nächsten Beitrag.

Ferner: Ich hatte oben lediglich den Status berichtet - nach der langen Diskussion über die Eingangsfrage, die längst geklärt ist. Halte ich für fair, wenn so viel geschrieben wurde. Damit wollte ich keine neue Diskussion auslösen.

Nur um deine Großmaul zu stopfen
Ich hoffe, es geht Dir und vor allem Deinem offensichtlich schwächelnden Ego jetzt besser, da Du Dich verbal so schön erleichert hast! Bestätigt mir, daß wir beide eine Kommunikation auf diesem Deinem Niveau besser völlig unterlassen sollten.

JA, ich schwätze schlau daher, weil ich mich lange genug damit beschäftigt habe, während du nur in Javascript kleine Null bist.
Na jetzt muß Dein Ego aber wahre Höhenflüge machen! Aber Vorsicht: solche Flüge tun selten gut, nicht nur wegen der Gefahr schmerzhafter Abstürze in die bittere Realität.

Übrigens: Hab ich jemals etwas anderes behauptet als ein JS/html/DOM-Anfänger zu sein?

Im Gegenteil: Ich hab vor allem Html nichts und mit DOM wenig am Hut und will darin besser nie ein Spezialist werden, während ich zu JS - abgesen von dem kryptischen C-Scheiß darin und den Tools - mittlerweile ein ganz entspanntes Verhältnis habe. Man kann basierend auf Joose einigermaßen ordentlich in JS arbeiten, wenn man den Müll vermeidet, der von C übernommen wurde.

So, ich denke, wir sollten uns jetzt besser gegenseitig ignorieren. Es sei denn, Du willst Dein Ego weiter an mir aufbauen, dann steht Dir das natürlich frei. Damit konnte ich schon einigen helfen! Ich werde amüsiert und mit Interesse diesen besonderen Fall von Foren-Psychologie studieren. Oft sagt ein Nick viel, manchmal alles.
 
Zuletzt bearbeitet:
Info zur Sache:

Die Anforderungen sind leider wesentlich komplizierter, denn:
- Bilder und Areas werden skaliert. Areas zwangsläufig im Code. Viele Areas ergeben leider Timing-Probleme (bes. IE).
- Das große Bild mit seinen Areas muß per Maus innerhalb seines Ext-Containers (Panels) bewegbar sein, wenn vergrößert (das Panel ist dann die Teil-Ansicht).
- Es werden zusätzlich andere Objekte (Gifs, Rahmen etc) auf das Bild gelegt, die bzw. deren Position ebenfalls zu skalieren sind und natürlich auch mit dem Bild bewegt werden müssen.

Zwar konnte ich Bilder und Areas als ein Html in das Panel einfügen, aber dann läßt sich das Bild nicht mehr bewegen. Ich laboriere daran noch herum.
 
@hesst
Eine Diskussion über die Qualität eine Dokumentation mit einem Experten ist müßig, wenn dieser - wie Du - seinen eigenen Kenntnisstand beim Leser einer Dok voraussetzt und jeden Müll sowie das Fehlen präziser Informationen und Erläuterungen akteptiert.

Dakumentation ist für die bestimmt, die (noch) nicht wissen, wie etwas geht.

und die stelle habe ich dir schon 2 mal gezeigt.
Code:
If useDom is false, then the string is used as innerHTML.
damit sollte klar sein, das sie diesen mit innerHTML einfügen(wie auch sonst).
Diese Aussage, die übrigens unter "Performance boost" steht, also völlig themenfremd, ist für jeden Leser Müll, der nicht bereits weiß, wie alles funktioniert und daß innerHtml Beschränkungen hat. Für Experten bräuchte es nicht da zu stehen. Für jeden anderen ist das völlig wertlos.

Sie ist so viel wert, als stünde sie nicht da. Ein weiterer Beweis, daß die Ext Doku große Scheiße ist. Kein Wunder, wenn bzw. weil sie von Entwicklern geschrieben wird.

wenn du über innerHTML eine map unter/in ein img einfügst, bringt der IE einen fehler und der FF fügt unter das img-objekt 2 child-elemente ein, ein img und die map.
Wenn das in der Doku stünde, was nötig wäre, wäre ich voll des Lobes. (Einen Fehler bringt IE übrigens nicht, sondern IE macht schlicht gar nichts.)

das macht der ff falsch und der ie richtig.
Für mich gilt: True is what works.
 
Infos? Eher Geschwätz, wie immer.

Aber du hast Recht, ich habe noch nie in irgendeinem Forum/Board/Newsgroup jemand erlebt, der so inhaltslos daher schwätzt wie du und gleichzeitig so tut, als ob er etwas mitzuteilen hätte. Daher stimmt es, es ist besser wenn man dich ignoriert, denn jeder Versuch eine fachliche Kommunikation mit dir zu führen ist sinnlos.
 
if ($thread_poster == "bis") {
move_thread($thread_id,"fun");
}
leute, sehts locker.. :)
interessant aber ist, dass hier nur die threads entgleisen, in denen bis postet.
 
was haben areas mit timingproblemen zu tun?
Danke, daß ich wenigstens mir Dir über die Sache reden kann. Erfrischend und ermutigend in dieser Egomanie-Wüste!

Je nach Seite können bis zu 200 Areas drauf sein. 30-80 sind typisch. Wenn daraus Html erzeugt wird inkl. der jeweils nötigen Skalierung, dann wurde sogar in FF oft nur die Seite angezeigt ohne map/areas, wohl weil die noch nicht fertig waren.

Ich habe die Reihenfolge dann so umgestellt, daß es klappte. Vor allem in IE ist aber die Zeit schon bei 50 Areas durchaus spürbar. Ich sehe aber leider keine Alternative zur völligen Neuberechnung, weil sich Zoom und, beim Bewegen des Bildes, vor allem die Offsets jeweils ändern.

Daher ist es ein großer Mangel, daß die Browser Areas nicht selbst skalieren.

Nebenbei: Der Code, der in FF einwandfrei funzt, ergibt in IE verzerrte Bilder und damit falsche Koordinaten. Ich hab mich noch nicht darum gekümmert, weil das andere IE-Problem wichtiger ist.
 
Zurück
Oben