Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: application/xhtml+xml, JavaScript'y nie dzialaja
Forum PHP.pl > Forum > XML, AJAX
kufalo
Problem jest nastepujacy:
Jezeli wysylam naglowek 'Content-type: application/xhtml+xml' przestaja dzialac wszystkie JavaScript'y w kodzie...
Chodzi o FF, Opere i Safari. Oto przyklad:

  1. <?
  2.  header('Content-type: application/xhtml+xml');
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6.  <head>
  7. <title></title>
  8.  </head>
  9.  <body>
  10. <div>
  11.  <script type="text/javascript">
  12.   document.body.style.backgroundColor='#000000'
  13.  </script>
  14. </div>
  15.  </body>
  16. </html>
zur887
Zamiast w header" title="Zobacz w manualu PHP" target="_manual spróbuj normalnie jako HTML:
  1. <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />

sprawdź, może coś zmieni.
gekon
Ponieważ "document.body" jest interfejsem właściwym dla HTML, a nie XML. Metoda getElementsByTagName powinna pomóc.
envp
offtopic.gif
@zur887 - wybacz, ale nie przesadzasz z tym linkiem w sygnaturce ?
Blodo
http://www.w3schools.com/xml/xml_cdata.asp

W xhtml 1.0 tagi script musza byc oplecione w cdata, w ten sposob:
  1. //<![CDATA[
  2.  
  3. jakis tam js
  4.  
  5. //]]>


Cdata o sposob poinformowania parsera xml zeby nie parsowal kodu pomiedzy tymi tagami.
Anke
Ten skrypt tak naprawdę działa. Efekty są niewidoczne, ponieważ body jest u Ciebie puste. Istotna różnica między html a xhtml - elementem głównym w xhtml jest html, a body dostosowuje się do zawartości.

Inna sprawa, że owszem, są problemy z javascript, gdy używa się typu MIME innego niż "text/html", ponieważ nie działa metoda document.write. A to z tego względu, że dynamicznie generuje ona zawartość strony przy ładowaniu, natomiast dokumenty XML są parsowane przed renderowaniem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.