• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Probleme im IE mit Prototype Framework

Status
Für weitere Antworten geschlossen.

Der_Johnny

Neues Mitglied
Ich bin schon beinahe verzweifelt bei einem Darstellungs- und Funktionsproblem im IE. Dachte zunächst an Unzulänglichkeiten mit dem IE (CSS). Bin damit aber nicht weitergekommen, deswegen vermute ich, dass die Darstellungsfehler auf dem Prototype Framework basieren.

Ich habe Kontaktformulare, die ich mittels Javascript (Prototype "Toggle"-Effekt) ein und ausblenden kann. Im Chrome, Safari, Firefox echt kein Problem. Die Anordnung der Kontaktfelder, inklusive der Bilder der Kontakpersonen, funktioniert dort reibungslos.

Im IE 7 sind erstmal die Kontaktpersonen verschoben, was ich mit CSS-Hacks für den IE 7 bisher noch nicht beheben konnte (habe echt schon alles versucht). Das größte Problem ist aber, dass sich im IE 7 bei zwei der drei Kontaktpersonen das Formular nicht aufblenden lässt, weil sie - so sieht es dann zumindest aus - in einen nicht sichtbaren Bereich der Seite verschoben werden oder vielmehr unter dem nebenstehenden DIVs liegen - wie auch immer.

Live könnt ihr Euch das hier anschauen:
  - Kontakt | Gemeindezentrum Auerstraße - Mülheim

Ich hänge jetzt schon etliche Wochen an diesem Problem und komme da nicht weiter!

Wäre echt nett, wenn sich das jemand mal anschauen und mir bei der Behebung der Problematik behilflich sein kann.
 
Werbung:
Ich bin das Problem jetzt umgangen und hab die Kontaktfelder mit den Javascripts in eine andere Spalte verlagert. Dadurch funktioniert es auch im IE. Damit kann ich leben...
 
Das ist zwar ne nette Spielerei mit dem Framework, aber wenn ein Besucher, aus welchen Gründen auch immer, kein JavaScript hat, oder es deaktiviert hat, wird er die Felder nie sehen und somit auch kein Kontakt aufnehmen können. Das ist doch sicher nicht gewollt, oder?
 
Werbung:
Das ist mir sehr wohl bewusst. Da jedoch auch renommierte Firmen und Organisationen stellenweise mit so einem "Schnickschnack" arbeiten, ist das Risiko anscheinend zu verschmerzen. Diejenigen, die Javascript deaktiviert haben, haben halt Pech gehabt, ehrlich. Dafür steht ja immerhin eine Telefonnummer drunter.

Man kann es mit dem Thema Barrierefreiheit auch ein wenig übertreiben...
 
Das ist mir sehr wohl bewusst. Da jedoch auch renommierte Firmen und Organisationen stellenweise mit so einem "Schnickschnack" arbeiten, ist das Risiko anscheinend zu verschmerzen.
Und wenn die renommierten Firmen gemeinsam von ner Klippe springen, springst du hinterher?

Diejenigen, die Javascript deaktiviert haben, haben halt Pech gehabt, ehrlich. Dafür steht ja immerhin eine Telefonnummer drunter.
Du musst auf die User verzichten können...

Man kann es mit dem Thema Barrierefreiheit auch ein wenig übertreiben...
Nein, eigentlich nicht.
 
Und wenn die renommierten Firmen gemeinsam von ner Klippe springen, springst du hinterher?

...wenn es Firmen oder Organisationen sind, die sich besonders durch ihre Internetpräsenz stark etablieren...warum nicht?

Du musst auf die User verzichten können...

Ich überlege momentan stark, auf was ich mehr verzichten kann. Wenn ich die Javascripts ausbauen würde, würde die Seite sehr unübersichtlich und vom Aufbau her sogar unSINNIG. Ich müsste mein komplettes Layout überdenken. Nach all der Arbeit würde mir das mehr weh tun, als die paar User, die Javascript deaktiviert haben.

Nein, eigentlich nicht.

Wenn man Kosten und Nutzen gegeneinander abwiegt, hege ich schon starke Bedenken dagegen, auf Biegen und Brechen Barrierefreiheit zu erzielen, nur um gewisse Minderheiten im Netz zu berücksichtigen. Gerade im Web 2.0, in dem interaktive Webseiten mit intuitiven Bedienelementen auf dem Vormarsch sind, werden wirklich die wenigsten paranoiden User Javascript deaktiviert haben.

Naja, das ist ein Thema, an dem man sich - glaube ich - auch einen Zahn ausbeißen kann... ;)
 
Werbung:
Warum setzt du das display:none; nicht auch mit Javascript.
Dann würden die Formulare auch ohne Javascript erreichbar sein.
 
...wenn es Firmen oder Organisationen sind, die sich besonders durch ihre Internetpräsenz stark etablieren...warum nicht?
Weil sie deswegen trotzdem nicht fliegen können.

Ich überlege momentan stark, auf was ich mehr verzichten kann. Wenn ich die Javascripts ausbauen würde, würde die Seite sehr unübersichtlich und vom Aufbau her sogar unSINNIG. Ich müsste mein komplettes Layout überdenken. Nach all der Arbeit würde mir das mehr weh tun, als die paar User, die Javascript deaktiviert haben.
Du bräuchtest auf keinen verzichten, wenn du bei abgeschaltetem Javascript zu einer neuen Seite leiten würdest und nur wenn JavaScript aktiviert ist, es dynamisch lädst.
Code:
<a href="neu.php" onclick="do_something(); return false;">Link</a>
Dieser Link führt die Funktion do_somthing() aus, wenn Javascript aktiviert ist und verhindert das Weiterleiten auf die neue Seite, der Link funktioniert aber, wenn JavaScript deaktiviert ist.

Wenn man Kosten und Nutzen gegeneinander abwiegt, hege ich schon starke Bedenken dagegen, auf Biegen und Brechen Barrierefreiheit zu erzielen, nur um gewisse Minderheiten im Netz zu berücksichtigen.
Damit würdest du die Minderheiten ausgrenzen, die ohnehin schon benachteiligt sind und auf Barrierefreiheit angewiesen sind.

Gerade im Web 2.0, in dem interaktive Webseiten mit intuitiven Bedienelementen auf dem Vormarsch sind, werden wirklich die wenigsten paranoiden User Javascript deaktiviert haben.
Bei mir im Büro gibt es genügend Mitarbeiter, die JavaScripte blockieren und Seiten wieder verlassen, wenn es nicht funktioniert. Aber wie du siehst, gibt es Möglichkeiten, ohne großen Mehraufwand barrierefrei zu arbeiten.

Naja, das ist ein Thema, an dem man sich - glaube ich - auch einen Zahn ausbeißen kann... ;)
Ja, weil die meisten noch nicht in der Lage waren, auf barrierefreie Webseiten angewiesen zu sein. Besorg dir mal einen Screenreader, mach die Augen zu und versuch mal, dich durchs Netz zu bewegen. Da wirst du ganz schnell merken, wie wichtig es ist, auf Barrierefreiheit zu achten.
 
Zuletzt bearbeitet:
Gibt es denn auch eine Möglichkeit beim Betreten der Seite automatisch überprüfen zu lassen, ob Javascript aktiviert ist oder nicht um dann auf die entsprechende Seite umzuleiten?
 
Werbung:
Wozu willst du auf eine neue Seite umleiten, wenn du es auch in einer Seite haben kannst?
 
Letzten Endes wünsche ich mir genau das, was Du oben schon geschrieben hast, nur dass der Link nicht angeklickt werden soll, sondern automatisch auf die Seite umgeleitet werden soll, wenn Javascript aktiv ist.

Also beim Start auf die Seite "kontakt" wird eine Seite ohne Javascriptelemente aufgerufen, wenn jedoch Javascript möglich wäre, wird auf eine "Kopie" dieser Seite umgeleitet, die die entsprechenden Javascripteffekte beinhaltet.

Ich bin mir nur nicht schlüssig, wie das umzusetzen ist.
 
Kopien der Seite sind ja garnicht nötig. Probier das Beispiel mal aus, lass in der Funktion etwas ausführen und dann probier es einmal mit Javascript und einemal ohne, dann wirst du erkennen, dass du nur eine Seite brauchst, um beide Varianten abzudecken.
 
Werbung:
Anscheinend versteh ich dann wohl diesen Abschnitt nicht:

Du bräuchtest auf keinen verzichten, wenn du bei abgeschaltetem Javascript zu einer neuen Seite leiten würdest und nur wenn JavaScript aktiviert ist, es dynamisch lädst.

Code:
<a href="neu.php" onclick="do_something(); return false;">Link</a>

Dieser Link führt die Funktion do_somthing() aus, wenn Javascript deaktiviert ist und verhindert das Weiterleiten auf die neue Seite, der Link funktioniert aber, wenn JavaScript deaktiviert ist.

Wie meinst Du das genau?
 
Der Link, wie er da angegeben ist, ruft bei aktiviertem JavaScript die Funktion do_something() auf, darin wird dann vermutlich die neue Seite geladen.

Ist JavaScript nicht aktiviert, zieht auch nicht der Event-Handler "onclick", d.h. das wird nicht berücksichtigt. Der Browser findet dann aber das Linkziel im Attribut "href", d.h. der oben angegebene Link funktioniert sowohl mit als auch ohne JavaScript.
 
Der Link, wie er da angegeben ist, ruft bei aktiviertem JavaScript die Funktion do_something() auf, darin wird dann vermutlich die neue Seite geladen.

Ist JavaScript nicht aktiviert, zieht auch nicht der Event-Handler "onclick", d.h. das wird nicht berücksichtigt. Der Browser findet dann aber das Linkziel im Attribut "href", d.h. der oben angegebene Link funktioniert sowohl mit als auch ohne JavaScript.
So isses, zu spät aufgestanden ;)

Stet aber auch so ähnlich schon unter dem Beispiel.
 
Werbung:
Ok, jetzt habe ich es inhaltlich verstanden, aber sachlich ist mir noch nicht klar, wohin der Link führen soll.

Wenn man jetzt von meiner Seite ausgeht: Ist es daraufhin gemünzt, dass der Link auf den "E-Mail an XY" gelegt wird und er jeweils auf die Kontaktformulare auf einer anderen Seite verweist - jeweils mit Javascript oder ohne?!
 
Wenn javaScript aktiviert ist, lässt du in der Funktion dein JavaScript laufen, so wie es jetzt ist, wenn JavaScript aber deaktiviert ist, brauchst du etwas, dass die Daten trotzdem anzeigen kann und das ist eine neue Seite, auf die der Link dann verweist.

Probier es aus, erstell dir eine Seite, zu der der Link führt und dann klickst du einmal mit aktiviertem JavaScript auf den Link und einmal ohne.

Du wirst sehen, dass einmal dein JavaScript ausgeführt wird, so wie es jetzt ist und einmal wirst du zu der neuen Seite weitergeleitet, die dann sinnvollerweise die Daten enthält, die sonst per JavaScript angezeigt worden wären.
 
Ich würde das Element ersteinmal überhaupt nicht ausblenden.
css:
Code:
#address {
display: block;
}


Und erst durch das Script ausblenden.
Javascript:
Code:
<script type="text/javascript">
function verstecken ()
{
document.getElementById("address").style.display = "none";
}

function aufklappen ()
 {
 if (document.getElementById("address").style.display == "none")
 {
 document.getElementById("address").style.display = "block";
 }
 else
 {
 document.getElementById("address").style.display = "none";
 }
}
</script>

Das Element mit dem Event-Handler könnte eine Überschrift für den Kontakt sein.
html:
HTML:
<h3 id="ausloeser" onclick="aufklappen()">Max Mustermann
</h3>
<address id="address">
Kontaktinfo
</address>
 
Werbung:
Wenn javaScript aktiviert ist, lässt du in der Funktion dein JavaScript laufen, so wie es jetzt ist, wenn JavaScript aber deaktiviert ist, brauchst du etwas, dass die Daten trotzdem anzeigen kann und das ist eine neue Seite, auf die der Link dann verweist.

Probier es aus, erstell dir eine Seite, zu der der Link führt und dann klickst du einmal mit aktiviertem JavaScript auf den Link und einmal ohne.

Du wirst sehen, dass einmal dein JavaScript ausgeführt wird, so wie es jetzt ist und einmal wirst du zu der neuen Seite weitergeleitet, die dann sinnvollerweise die Daten enthält, die sonst per JavaScript angezeigt worden wären.

Leider funktioniert das nicht, da beim Klick auf den Link er bei eingeschaltetem Javascript zwar den "onclick" berücksichtigt und ausführt, danach jedoch zusätzlich noch auf den "href" Link anspricht. Daher blendet der Browser das Formular auf, leitet dann aber sofort auf die neue Seite um, was ja nicht gewünscht ist.

Ich probier es mal mit der Lösung von neuroleptika.
 
Deswegen ja auch noch das return false dahinter, dieses verhindert, dass er dem href folgt.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben