Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP/JS/HTML] Content-Type deaktiviert JS? (https://www.delphipraxis.net/147890-%5Bphp-javascript-html%5D-content-type-deaktiviert-javascript.html)

Matze 18. Feb 2010 11:45


[PHP/JS/HTML] Content-Type deaktiviert JS?
 
Hallo,

die folgende Frage ist rein interessehalber. Ich habe mal versucht, diesen PHP-Header zu senden:

Code:
header('Content-Type: application/xhtml+xml; charset=utf-8');
Es funktioniert dann alles, nur JavaScript will nicht mehr. Mein JS sieht u.a. so aus:

Code:
<script type="text/javascript">
   <!--
   var PATH = '...';
   //-->
</script>
<script type="text/javascript" src="... my_js_file.js"></script>
In "my_js_file.js" verwende ich die Variable "PATH". Diese ist bei dem genannten Header in der JS-Datei nicht definiert.

Sende ich den Header so, dann geht alles:

Code:
header('Content-Type: text/html; charset=utf-8');
Woran liegt das? :gruebel:

Grüße, Matze

franktron 18. Feb 2010 11:47

Re: [PHP/JS/HTML] Content-Type deaktiviert JS?
 
Zitat:

Zitat von Matze
Code:
   <!--
   var PATH = '...';
   //-->

Weil das nicht in XHTML erlaubt ist

alcaeus 18. Feb 2010 11:58

Re: [PHP/JS/HTML] Content-Type deaktiviert JS?
 
Allgemein ist dieses Kommentargefrickel auch nur ein Ueberbleibsel aus alten Zeiten, das du rauswerfen kannst.

Grund fuer die Kommentare waren Browser, die das Script-Tag nicht kennen und deshalb den JS-Code ausgeben wuerden. Damit das nicht passiert, werden HTML-Kommentare drumrumgewickelt. Und damit Browser, die JS interpretieren nicht ueber den schliessenden HTML-Kommentar fallen, kam noch der JS-Kommentar mit rein.

Kurzum: viel Byte um nichts - ich frag mich grad wieviel TB man im Netz sparen koennte, wenn man diese Kommentare auf jeder Website rauswirft :lol:

Greetz
alcaeus

Matze 18. Feb 2010 12:27

Re: [PHP/JS/HTML] Content-Type deaktiviert JS?
 
Tatsache, das war alles. Ich danke euch. :thumb:

Daniel 12. Mär 2010 16:54

Re: [PHP/JS/HTML] Content-Type deaktiviert JS?
 
Das wird ja immer wilder. Laut XHTML-Standard sei Javascript mittels sog. CDATA-Tags einzubinden, wie man sie von XML kennt. Meinetwegen - ich wäre ja noch bereit, die früher genutzten HTML-Kommentare durch CDATA-Tags zu tauschen, im Endeffekt ist mir das gleich. Damit aber nicht noch ein Browser in die Versuchung kommt, das CDATA-Tag als Javascript zu interpretieren, sollte man dieses dann doch noch mit Javascript-Kommentaren umschließen. Damit wird der ganze Kram immer länger.

Javascript in XHTML sieht angeblich wie folgt aus:

Code:
<script type="text/javascript">
/* <![CDATA[ */
    alert("hello, world");
/* ]]> */
</script>

... sollte das alles nicht mal einfacher werden?
:gruebel:

jfheins 12. Mär 2010 17:03

Re: [PHP/JS/HTML] Content-Type deaktiviert JS?
 
Einfach eine externe Skriptdatei einbinden, dann hast du auch XHTML und Javascript schön separat (genau wie CSS)

Matze 12. Mär 2010 17:06

Re: [PHP/JS/HTML] Content-Type deaktiviert JS?
 
Ich nutze separate JS-Dateien, nur für "globale" Variablen habe ich das direkt im HTML-Code. Das liegt daran, dass ich so von PHP Werte an JS übergeben kann.
Klar könne man eine JS-Datei nehmen, die in PHP einlesen, Variablen ersetzen und als JS-Datei an den Browser senden. Aber das wäre ja richtig umständlich. *g*

Aber auskommentierte CDATA-Konstrukte sind grausam zu lesen ... :freak:

ele 12. Mär 2010 17:13

Re: [PHP/JS/HTML] Content-Type deaktiviert JS?
 
Es sei hier zu erwähnen, dass die meisten Browser auch heutzutage noch Mühe haben mit dem Content-Type application/xhtml+xml.
Bin erst gerad Vorgestern darüber gestolpert, dass Firefox dann Probleme hatte mit gewissen css-selektoren. Bei der Fehlersuche im Netz bin ich dann über einen Post gestolpert, der unter anderm erwähnte, dass das Rendern dann fünfmal so langsam sei...(obs wirklich stimmt weiss ich nicht)
Und IE hat soweit ich weiss auch Probleme damit.

Ich bin inzwischen dazu übergegangen meine XHTML-Seite als text/html zu deklarieren.

Matze 12. Mär 2010 17:19

Re: [PHP/JS/HTML] Content-Type deaktiviert JS?
 
Zitat:

Zitat von ele
Ich bin inzwischen dazu übergegangen meine XHTML-Seite als text/html zu deklarieren.

So sende ich es zur Zeit auch wieder. Ich habe zwar eine Überprüfung drinnen, um festzustellen, welcher Browser XML das unterstützt, aber irgendwas klappte dennoch nicht 100%.

ele 12. Mär 2010 17:49

Re: [PHP/JS/HTML] Content-Type deaktiviert JS?
 
Ich denke das wichtigste ist, dass der Doctype richtig ist. Dass beim IE dann beim XmlHttpRequest das responseXML nicht richtig gesetzt wird ist zwar schade, aber mit jQuery kann ich das Ding dann doch einigermassen parsen. Sonst kenne ich keinen wirklichen Anwendungsfall für XHTML bzw. sonst sehe ich keine Probleme damit dass der Content-Type nicht korrekt gesendet wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz