Ergebnis 1 bis 7 von 7

Thema: XHTML, JavaScipt, Firefox => Function ist nicht definiert

  1. #1
    TP-Urgestein Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.661

    XHTML, JavaScipt, Firefox => Function ist nicht definiert

    Also ich weiß nun nicht was hier faul ist, ggf. sieht ja einer was, was ich nicht sehe.
    Anhand eines PHP-Scripts wird der Browser, bzw seine Fähigkeiten überprüft und entsprechend ein header ausgegeben, der dann den DOCTYPE usw. definiert.

    Nun mal folgender Code, dieser wird im FF generiert:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
        <head>
            <title>TEST</title>
            <meta name="language" content="de-de" />
            <meta http-equiv="Content-Style-Type" content="text/css" />
            <meta http-equiv="Content-Script-Type" content="text/javascript" />
            <style type="text/css">@import "css/style.css";</style>
            <script type="text/javascript">
            <!-- //
            /*<![CDATA[*/
            function test(){
                alert('test');
            }
            /*]]>*/
            //-->
            </script>
        </head>
        <body id="gaestebuch">
            <a href="javascript:test()">testlink</a>
        </body>
    </html>
    Wenn ich nun im FF den Link klicke passier nichts.
    Die JavaScript-Konsole meldet:
    Fehler: test is not defined
    Quelldatei: javascript:test()
    Zeile: 1

    Was ist da los
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  2. #2
    fiu
    fiu ist offline
    TP-Veteran Avatar von fiu
    Registriert seit
    Nov 2003
    Ort
    Graz
    Beiträge
    1.720
    wie gern ich dir helfen würde ... aba bei mir funktioniert es....

  3. #3
    TP-Urgestein Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.661
    Stimmt, für sich getestet ist das richtig.
    Aber ...
    Der FF kann als mime application/xhtml+xml verarbeiten und das lass ich als Headeranweisung ausgeben und danach will es nicht mehr.
    Das PHP Script schaut wie folgt aus.
    PHP-Code:
    <?
    session_start
    ();
    $charset "UTF-8";
    $mime "text/html";
    function 
    fix_code($buffer) {
        return (
    preg_replace("!\s*/>!"">"$buffer));
    }
    if(
    stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")) {
        if(
    preg_match("/application\/xhtml\+xml;q=([01]|0\.\d{1,3}|1\.0)/i",$_SERVER["HTTP_ACCEPT"],$matches)) {
            
    $xhtml_q $matches[1];
            if(
    preg_match("/text\/html;q=q=([01]|0\.\d{1,3}|1\.0)/i",$_SERVER["HTTP_ACCEPT"],$matches)) {
                
    $html_q $matches[1];
                if((float)
    $xhtml_q >= (float)$html_q) {
                    
    $mime "application/xhtml+xml";
                }
            }
        } else {
            
    $mime "application/xhtml+xml";
        }
    }
    if(
    $mime == "application/xhtml+xml") {
        
    $prolog_type "<?xml version=\"1.0\" encoding=\"$charset\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\" lang=\"de\">\n";
    } else {
        
    ob_start("fix_code");
        
    $prolog_type "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html lang=\"de\">\n";
    }
    header("Content-Type: $mime;charset=$charset");
    header('Vary: Accept, User-Agent');
    header('Cache-Control: private');
    print 
    $prolog_type;
    ?>
    Lass ich nun den MIME ungeachtet der Browser Fähigkeiten auf text/html geht es, aber ich weiß noch, dass mit MIME=text/html und uft-8 irgend welche Probleme in dem Projekt vorhanden waren.

    Sonst einer einen Hinweis, wie ich JavaScript auch mit MIME=application/xhtml+xml ansprechen kann.
    Geändert von webcreate (15.06.2006 um 21:00 Uhr)
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  4. #4
    TP-Veteran Avatar von AnnaStesia
    Registriert seit
    Mar 2002
    Ort
    Berlin
    Beiträge
    1.863
    Hallo webcreate, probier's mal hiermit
    Code:
    <script type="text/javascript">
     <![CDATA[
            function test() {
                alert('test');
            }
           ]]>         
     
            </script>
    Die klassischen Kommentarbegrenzer sind so ne Sache bei XML, alles zwischen <!-- ... --> wird ignoriert. So richtig erklären kann ich's dir jetzt nicht, aber eine Suchmaschine Deiner Wahl wird Dir mehr zum Thema "comments javascript application xhtml" o.ä. sagen. Allgemein is es sicher einfacher und sauberer, Scripte auszulagern, dann brauchst Du Dich um sowas nicht zu kümmern.
    Ich weiss es doch auch nicht.
    » www.sightdesign.de «

  5. #5
    TP-Urgestein Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.661

    Heldin Des Abends

    Man man, da sag nochmals nen Mann; Frauen und Technik.

    Die Kommentierung hatte ich auch schon raus, aber da hatte ich den CDATA Tag noch nicht drin, was gleich nen XML Fehler gab.
    Das ist nun nicht so und es funzt im FF.
    Da der IE aber nun kein application/xhtml+xml rafft, und der ja text/html bekommt, gibt es dort nen JavaScript Fehler.

    Aber die Lösung ist: Nicht alles, aber ein wenig Kommentieren

    Code:
    <script type="text/javascript">
    //<![CDATA[
            HIER DANN DAS SCRIPT
    //<]]>
    </script>
    Ich danke dir für den Lattenzaun, dass war es, was ich jetzt brauchte.

    FF bekommt application/xhtml+xml und der IE text/html. Man kann das Leben schön sein

    Für alle folgenden, die das selbe, oder ein ähnliches Problem haben, hier mal ein Link.
    Geändert von webcreate (15.06.2006 um 23:37 Uhr)
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  6. #6
    TP-Veteran Avatar von AnnaStesia
    Registriert seit
    Mar 2002
    Ort
    Berlin
    Beiträge
    1.863
    Freut mich, wenn ich Dich zumindest auf den richtigen Trichter bringen konnte Wie schön wäre das Leben erst, wenn der IE auch XHTML könnte, hachja ...
    Ich weiss es doch auch nicht.
    » www.sightdesign.de «

  7. #7
    TP-Specialist Avatar von rewboss
    Registriert seit
    Mar 2005
    Ort
    Unterfranken
    Beiträge
    2.639
    Skripts und Stylesheets mit <!-- auszukommentieren ist heutzutage recht überflüssig. Das war damals erforderlich, als es noch Browser gab, die nicht nur kein JavaScript konnten, sondern auch noch den <script>-Tag nicht kannten. So wurde der JavaScript-Quelltext angezeigt.

    Heutzutage wissen die JavaScript-unfähigen Browser, dass sie alles zwischen <script> und </script> ignorieren sollen.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51