Patrick Andrieu: Eibox, die 7.!

Beitrag lesen

Hallo Detlef!

Erst mal ist es an der Zeit, dass ich mich bei Dir ganz persönlich und herzlich bedanke dafür, dass Du Dich für dieses Problem interessiert (wo es doch im Grunde nur ein Gimmick ist *g*) und Dir der "Eibox-Sache" derart annimmst.

Seltsam, als ich es heute getestet habe

Nein ;) Nichts ist hier seltsam. Seit mehreren Wochen schon habe ich die Eiboxen "entwickelt" und mich wundert mittlerweile nichts mehr. Sachen, die ich für abgehakt hatte, treten auf einmal wieder auf. Warum? Es kommt wirklich darauf an, alles zu testen. Mit IE, mit allen Operas, die man hat, mit den Geckos (für mich die fähigsten Browser, die machen die wenigsten Problemen - nicht nur bei den Eiboxen). Alle Situationen probieren, sich in ein User reinversetzen, der alles anklickt und dies und jenes macht etc... Auch jetzt, abgesehen von den Fehlern, die Du notierst hast, und auf die ich gleich eingehen werde, ist das "System" bei weitem nicht ausgereift.

Dies habe ich so eingefügt, weil ich nicht weiter in deinem Code rumrühren wollte.

Danke, aber es hat gewirkt ;)

Es ist aber ineffektiv, sich bei jedem Aufruf alle Divs der Seite zu holen, um sie dann alle einzeln abzuklappern, ob sie eine Eibox sind. Besser wäre es, global ein "Eiboxarray" zu erzeugen, und bei load() einmalig alle Divs durchzugehen und dabei die Referenzen auf die Eiboxen zu darin speichern.

Mag sein. Ich glaube aber nicht, dass es so viel Performance kostet. Obwohl getElementsByTagName('div').length bei der/den verlinkten Testseiten 61 DIV-Elemente auflistet (und das bei nur 4 Eiboxen), geht alles ziemlich flott. Sicher, vom Aspekt "sauberer Programmierung" wäre ein reiner Eibox-Array wirkungsvoller.

Nun noch Fehler bzw. Anmerkungen:
Die Eibox kann zumindest im Firefox nach links oder oben aus dem Browserfenster herausgedragt werden.

Stimmt. Bei Opera 9.01 bleit ein Teil der "Titelleiste" im Viewport, auch wenn Maus losgelassen...

Damit wird sie unerreichbar. Da sollte vielleicht noch eine Prüfung eingebaut werden, die das verhindert.

Ich schau mal die Tage bei DOM-Drag, wie die es in dem einem Beispiel gelöst haben (wo die Drag-Bilder schön innerhalb des einen DIV bleiben).

Beim IE werde ich die Eibox nicht wieder los, wenn ich bei gedrückter Maustaste das Browserfenster verlasse, sie bleibt am Mauszeiger kleben. Erst ein weiterer Tastendruck legt die Eibox ab.

Damit ich Dich verstehe: Du meinst, wenn ich eine Eibox nach z.B. rechtsaußen dragge, die Maustaste aber gedrückt lasse (dann bleibt die Box halb sichtbar am rechten Rand), zurück ins Fenster gehe, dann klebt die Box noch am Mauszeiger? Wäre es als Fehler oder Fehlverhalten anzusehen?

Mein Opera verhält sich in dieser Hinsicht mal wie Firefox und mal wie IE. Wann genau er sich wie verhält konnte ich nicht eindeutig nachvollziehen.

Hm.. beim 9er ist es nicht möglich, nach oben die Boxen soweit heraus zu bekommen wie beim Firefox. Dafür kann man sie (nur manchmal, ja) unsichtbar nach rechts oder links herausdraggen. Sie "kleben" bei gedrücktgelassener Maustasten allerdings immer noch.

Sollten nicht alle Variablen innerhalb der Funktionen, die nicht global gültig sein sollen, auch wirklich local sein?

Das verstehe ich nicht ganz. Ich habe mittlerweile in Perl eine intuitivere Art, vielleicht weil es mit Perl doch einfacher ist, mit local/global umzugehen, entwickelt (und zwar ohne use strict).

Es gibt noch einige Probleme mit der restore_eibox-Funktion, die einfach die daher rühren, dass der Wert der zuletzt geclippten Eibox gespeichert bleibt. Danach gehen alle restored Eiboxen an der gleichen top-Stelle auf, wie die zuletzt geclippte. Sowas wüßte ich mit Perl in wenig Zeit umzugehen.

Struppis Signatur (hoffenltich liest er noch mit) "JavaScript ist toll - Perl auch" würde ich eher in "Perl ist toll - JavaScript, wenn's sein muss" umdichten *g*. Irgendwie habe ich eine intuitivere Art als absoluter Programmierlaie entwickelt, mit Perl umzugehen. Ich muss mich nicht mit Browserbesonderheiten, Laufzeitprobleme beim IE usw. herumschlagen. Was ich mache, das läuft, und wenn nicht, läuft es beim nächsten Versuch. Für meine makenav.pl habe ich drei bis vier Tage gebraucht. An den Eiboxen bin ich (OK, mit vielen Pausen dazwischen) schon drei Wochen dran. Für mich sagt das schon alles *g*.

Der Inhalt der Eiboxen befindet sich einmal im Dokument und wird nur bei aktiviertem Javascript (in Form der Eibox) angezeigt oder wenn kein CSS unterstützt wird.

Ich hatte auch überlegt, die Eiboxen generell dynamisch zu generieren, aber irgendwo muss ohnehin ja der Text oder das Bild eh notiert werden. Da es von Seite zu Seite unterschiedlich ist, ist es einfacher, bei jeder Seite, die Eibox(en) zeigen soll, die DIVs im Dokument zu notieren, die Text-Inhalten werden eh mittels SSI inkludiert.

Ohne Javascript öffnet sich eine extra Seite. Ich halte nicht (ANMERKUNG: du meinst: ich halte das) für doppelt gemoppelt. Warum lässt du du die Eiboxen bei deaktivierem Javascript nicht einfach sichtbar, als Anker verlinkt oder unverlinkt (Link zur Eibox nur wenn Javascript verfügbar ist)?

Das würde doch nach nichts aussehen. Einfach, am Ende des blauen Textrahmens, würden die Eiboxen wie faule Trauben noch darunter hängen? Unformatiert und so? Nein, ich wollte das so *g*. Ich glaube auch nicht, dass es Userfeindlich ist, den Inahlt dieser Zusatzinformationen in einer Extra-Seite zu liefern. Den Inahlt bekommen sie, zurück kommen sie ja auch. Das muss man JavaScript-Verweigerer einfach zumuten, dass sie sich eins-zwei Klicks mehr Mühe geben, als andere... Hauptsache, sie werden vom Inhalt nicht ausgeschlossen, was bei mir nicht der Fall ist *g*

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
<hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
1 50

[nicht nur] für Struppi!

Patrick Andrieu
  • javascript
  1. 0
    Patrick Andrieu
    1. 0
      Struppi
      1. 0
        Patrick Andrieu
      2. 0
        Patrick Andrieu
        1. 0
          Struppi
          1. 0
            Patrick Andrieu
            1. 0
              Patrick Andrieu
              1. 0
                Mathias Brodala
                1. 0
                  Patrick Andrieu
                  1. 0
                    Mathias Brodala
                2. 0
                  Patrick Andrieu
  2. 0

    iBox^W Eibox

    Mathias Brodala
    1. 0
      Patrick Andrieu
      1. 0
        Mathias Brodala
        1. 0
          Patrick Andrieu
          1. 0
            Mathias Brodala
            1. 0
              Patrick Andrieu
        2. 0
          Detlef G.
  3. 0
    Detlef G.
    1. 0
      Patrick Andrieu
      1. 0
        Detlef G.
        1. 0
          Patrick Andrieu
          1. 0
            Patrick Andrieu
          2. 0
            Patrick Andrieu
          3. 0
            Detlef G.
            1. 0
              Patrick Andrieu
              1. 0
                Patrick Andrieu
                1. 0

                  Eibox, die 7.!

                  Patrick Andrieu
                  1. 0
                    Patrick Andrieu
                  2. 0
                    Patrick Andrieu
                    1. 0
                      Detlef G.
                    2. 0
                      Detlef G.
                      1. 0
                        Patrick Andrieu
                        1. 0
                          Detlef G.
                          1. 0
                            Patrick Andrieu
                            1. 0
                              Struppi
                              1. 0
                                Patrick Andrieu
                                1. 0
                                  Struppi
                            2. 0
                              Patrick Andrieu
                            3. 0
                              Detlef G.
                              1. 0
                                Patrick Andrieu
                                1. 0
                                  Detlef G.
                            4. 0
                              Patrick Andrieu
                              1. 0
                                Detlef G.
                                1. 0
                                  Patrick Andrieu
                                  1. 0
                                    Detlef G.
                                    1. 0
                                      Patrick Andrieu
  4. 0
    Detlef G.
    1. 0
      Patrick Andrieu