Der IE ist doof!

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Muß gerade mal frust ablassen... Der IE ist einfach doof!
Ich hab den neuen <button> Tag genutzt und stelle nun fest, das der IE diesen ziemlich dumm interpretiert...

Hier ein TestSkript:

Code: Alles auswählen

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import cgitb;cgitb.enable()
import os, cgi

Head = """<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>CGI test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head><body>"""

Form = """
<form name="login" method="post" action="?">
    <input name="text_feld" type="text" value="Werte im Text-Feld"><br />
    <input type="submit" name="input_submit" value="Werte des alten input submit">
    <button type="submit" name="button_submit" value="Wert des Buttons">Button Beschriftung</button>
</form>
"""


class test:
    def __init__(self):
        self.data = {}
        self.getCGIdata()

        print "<h2>CGI Daten:</h2>"
        print "<pre>"
        for k,v in self.data.iteritems():
            print "%s - %s" % (k,v)
        print "</pre>"

    def getCGIdata(self):
        FieldStorageData = cgi.FieldStorage()

        # POST Daten auswerten
        for i in FieldStorageData.keys():
            self.data[i] = FieldStorageData.getvalue(i)

        if os.environ.has_key('QUERY_STRING'):
            # GET URL-Parameter parsen
            for item in os.environ['QUERY_STRING'].split("&"):
                item = item.split("=",1)
                if len(item)==1:
                    if item[0]!="":
                        self.data[ item[0] ] = ""
                else:
                    self.data[ item[0] ] = item[1]

if __name__ == "__main__" :
    print "Content-type: text/html; charset=utf-8\r\n"
    print Head
    test()
    print "<hr>"
    print Form
    print "<hr>"
    print "<pre>%s</pre>" % cgi.escape(Form)
    print "</body></html>"

Der IE schickt, wenn man den alten <input> Button benutzt das zurück:
button_submit - Button Beschriftung
text_feld - Werte im Text-Feld
input_submit - Werte des alten input submit
Wenn man den neueren <button> benutzt, das:
button_submit - Button Beschriftung
text_feld - Werte im Text-Feld
Ich hätte allerdings eigentlich erwartet, das es genauso wie Mozilla reagiert:
<input>:
text_feld - Werte im Text-Feld
input_submit - Werte des alten input submit
<button>:
button_submit - Wert des Buttons
text_feld - Werte im Text-Feld

Nun darf ich in PyLucid alle Button-Varianten durch <input> ersetzten und mit hidden-Feldern die value-Werte übergeben, die man eigentlich schön beim <button> festlegen kann :evil: :twisted:
Deswegen ist PyLucid im momentan mit dem IE nicht zu benutzen...

Das es Unterschiede bei so elementaren Dingen gibt!

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Nachtrag:

Wenn man zwei Buttons definiert die den selben Namen haben, reagiert der IE auch super, er liefert einfach beide values zu dem namen zurück, egal auf welchen Button man klickt:
<button type="submit" name="action" value="edit">edit</button>
<button type="submit" name="action" value="del">del</button>
Ja *freu* :evil:

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mir wäre das Wochen, Monate, Jahrelang nicht aufgefallen (warum wohl? *g*). Kannst es ja noch mit Opera testen, seit version 8.50 sogar kostenlos und werbefrei.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Leonidas hat geschrieben:Kannst es ja noch mit Opera testen
Gute Idee... Hab ich gerade gemacht, er verhält sich so wie Mozilla...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

So, nun (SelfHTML v8.1.1) ist es offiziell:
SelfHTML hat geschrieben:Der Internet Explorer (getestet bis Version 6.0) verhält sich bei dieser Art Button leider falsch. Er sendet die Buttonbeschriftung, nicht den Inhalt des value-Attributes. Existieren mehrere Absende-Buttons, werden die Beschriftungen aller Buttons gesendet, nicht nur die des geklickten. Deshalb muss man dem IE leider attestieren, dass er dieses Feature derzeit noch nicht korrekt unterstützt.
http://de.selfhtml.org/html/formulare/f ... htm#modern

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten