Sammeltopic für kurze Codingfragen

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Das section-Tag unterteilt deine Website in Sektionen, quasi Hauptbereiche.
    Diese Hauptbereiche sind (bei mir) der Head-, Main-Content- und Footer-Bereich.
    Eigentlich ist es fast egal, ob du nun div oder section benutzt, ich selber nutze div aber nur für den Sektionen untergeordnete Bereiche.
    Einziges Problem ist, dass ältere Browser, besonders der mehrfach verfluchte IE der Version 8 abwärts, das section-Tag nicht kennen und daher ignorieren.
    Bei Firefox, Chrome, Opera und Safari sollte das aber kein Problem sein, da diese Browser bei den meisten Nutzern auf dem Neuesten stand sind. Für den IE könnte man ein Fallback einrichten.

  • Das div-Tag wurde bisher auch dazu missbraucht Bereiche zu gruppieren. Um das nun klarer zu gestalten, Bereiche gruppieren und Blockelemente zur späteren formatieren durch css markieren, wurde section eingeführt.
    Je nach Verwendung macht es in der Tag keinen praktischen Unterschied. Für Braille-Reader kann sich das allerdings sehr positiv auswirken da mit section klar zwischen den Bereichen unterschieden werden kann, etwas was durch div nicht möglich war.


    Unterstützt wird das Tag von allen gängigen Browsers, IE erst ab V9.

  • So, ich hab auch ein Problem, welches ich leider nicht nachvollziehen kann xD.


    Ich hab für meine Seite ein bisschen Javascript geschrieben, um Statistiken aus- und einzublenden. Man klickt aufn Plus und der Content wird via AJAX eingespeißt und klickt nochmals drauf und der Knoten wird ausm DOM-Baum geworfen. Das klappt alles prima mit FF, Opera, Chrome, Safari... aber der schon mehrfach hier verfluchte IE macht was er will.
    Die AJAX-Funktion hab ich bereits mit einer Browserweiche ausgestattet und er führt die Funktion mit dem Parameter 1 für die erste Tabelle auch fehlerlos aus.
    Will ich aber die zweite Tabelle sehen mit Parameter 2 geht gar nichts... Klick ich nochmals drauf schmeißt er mirn fehler raus, weil er den Kindknoten nicht entfernen kann, den es alledings auch nicht gibt, wenn nichts reingeladen wurde.
    Die Funktion funktioniert also mit 1 als Parameter, jedoch nicht mit 2.... ( mit 3 hab ichs nicht versucht). Mein Testobjekt ist der IE 8. (User die IE8 oder weniger benutzen sind meiner Meinung nach eh n wenig Hinterwäldler, aber das Ganze sollte natürlich auch durchgehend funktionieren.)


    Code
    function use_ct(id){	if (check_array[id] == null){	copytree(document.getElementById(id),AJAX("GET","./includes/statistik"+id+"_ajax.php",null,false,null).responseXML,id);	}	else{	document.getElementById(id).removeChild(document.getElementById(id).firstChild);	check_array[id] = null;	}}


    Diese Funktion wird beim Klick auf das + ausgeführt.
    Das check_array überprüft welche der "Spoiler" offen sind und welche nicht.
    Über die statistik1_ajax.php bzw. 2, wird das XML geladen.



    Die Copytree stammt nicht von mir, sie hängt die Tags mitsamt Attributen in den DOM-Baum. Also vergleichbar mit InnerHTML.



    Und wer sich jetzt wundert, wieso ich noch synchron und nicht assynchron arbeitet, dem sei gesagt, dass ichs erstmal synchron zum laufen kriegen will.
    Hoffe irgendwer hat nen Plan parat, wieso er beim IE die Funktion nur mit dem Parameter 1 ausführt xD.



    Edit: So nach dem debuggen kann ich noch folgendes ergänzen. Das AJAX-Zeug funktioniert, allerdings ist var node = source.firstChild; beim aufruf mit parameter 2 null... und auch nur beim aufruf use_ct(2). Ich krieg hier echt nen Koller. Nachvollziehbar, wieso er die zweite XML nicht korrekt einbindet kann ich es nicht. Da die beiden Statistik.php-Dateien sich kaum unterscheiden.


  • Und für das bisschen gecode brauch ich noch kein framework ;) jQuery wär zwar nice aber die AJAX-Funktion ist ne Standardfunktion, die copytree auch. Die beiden stammen auch nicht von mir, sondern von meinem Prof.
    Der Debugger bestätigt auch,dass ein _http-Objekt angelegt wird und zurückgegeben wird...

  • Mal eine Frage:
    Ich möchte in Javascript etwas Einfaches machen, wo man einfach nur rumlaufen kann.
    Die Stellen, auf die man dann eben nicht gehen kann, die habe ich in ein Array geladen und das funktioniert auch, es ist aber ziemlich aufwendig.
    Da kam mir die Idee, das wie bei AdvanceMap zu machen mit den Gehdaten: Einfach ein Bild, auf dem die nicht-begehbaren Punkte Rot sind.
    Nun meine Frage: Lässt sich das mit JS iwie umsetzen, dass die Farbe eines Pixels auf einem Bild irgendwie auslesbar ist? Oder brauche ich dafür tatsächlich PHP??

  • Ich bedanke mich ganz herzlich bei dir, das hat mir tatsächlich geholfen.
    Das mach ich jetzt so, dass ich die nicht begehbaren Flächen mit Canvas male und die Farbe auslesen lasse.
    Wenn ich ein Bild in Canvas lade geht das nicht. Ist das irgendwie machbar? Vielleicht kennt sich ja hier jemand mit canvas aus..

  • Hey,
    ich hoffe, das ist der richtige Thread für mein Problem. Ich wollte in C++ ein Programm für die Auswahl von Emulatoren schreiben, aber das Programm erzeugt immer einen Fehler und schließt sich, wenn ich etwas auswählen möchte. Habe mich auch schon im Internet eingelesen und die doppelten \\ ergänzt, damit diese korrekt gelesen werden, aber es funktioniert noch immer nicht :(
    Ich hoffe jmd sieht meinen Fehler. Bin gerade total am Verzweifeln...


    Thx im Voraus und lg Nightmares

  • Jop, das ist beabsichtigt. Die sind nämlich alle beide innerhalb der " ", d.h. das wird angezeigt in der Konsole und hat keinerlei Einfluss auf den Quellcode ;)
    Das Programm an sich startet ja auch, nur nachdem ich eine Auswahlmöglichkeit (1 oder 2) eingegeben habe, schließt sich das Programm....

  • Da deine main-Funktion vom Typ int ist (wie in C++ üblich), braucht sie einen return value. Dieser ist in der Regel 0 und kann einfach am Ende der Funktion ergenzt werden.


    Auch wäre es gut zu wissen, was dein Programm für einen Fehler ausgibt.

  • Das Ergänzen von "return(0)" hat nichts geändert. Vielleicht habe ich mich auch ein bisschen schwierig ausgedrückt. Das Programm an sich läuft ja, nur die Programme möchte er nicht ausführen. Mittlerweile glaube ich, es liegt an den Leerzeichen im Dateipfad. Kann das sein?
    Als Anhang mal die Fehlermeldung kurz vorm Schließen des Programms...

  • Die system-Funktion ist eine der schlimmsten Funktionen, die es gibt und die solltest du never ever benutzen!
    Versuch es mal mit folgendem Funktionsaufruf:


    Code
    ShellExecute(NULL, NULL, _T("C:/Program Files (x86)/foo/bar.exe"), NULL, NULL, SW_SHOWNORMAL);


    Dieser benötigt die Shellapi.h, die du mit einem beherzten Include einbinden kannst. Mehr Infos findest du hier , auch wenn man dir ansieht, dass du Anfänger bist und dir die Dokumentation sicher nicht viel sagt...

    mummy mummy as you lie the dark man comes and makes you die
    my daddy's hands are red with guilt because he killed the life we built
    -
    bianco angelo