[xml] document.write i przyjaciele nie działają w dokum. XML
Moderator: Pomocy?!
[xml] document.write i przyjaciele nie działają w dokum. XML
Przeglądarka: Opera/7.50 (Windows NT 5.2; U) [en]
BTW: Dopiero dziś uświadomiłem sobie potęgę korzystania z parserów XML w przeglądarkach . I dotarło do mnie jak głęboko upośledzone jest MSIE w tym względzie
- quiris
- Posty: 659
- Z nami od: 31 lipca 2002, 06:53
Re: document.write i przyjaciele nie działają w dokumentach
Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031016 K-MeleonPL/0.8.2 (domel)
quiris pisze:Obiło mi się o uszy, że te funkcje są niezgodne z aplikacjami XML. Jeśli tak, to dlaczego?
Przeciez juz raz pytales
Sprawa jest banalna nie nie mozna generowac zcznikow i innych czesci XML-a przez cos co nie jest natywne w XML-u, poniewaz:
1. Parser musi miec slelnione zalozenia ze specyfikacji a to w wielu przypadkach (poniwaz document.write na to pozwala) zgeneruje kod w rozny sposob niezgodny ze specyfikacja np na co parser powinien byc uczulony szczegolnie <
2. Oczywiscie problem z punktu 1 mozna rozwiazanc (a nawet powinno sie) przes sekcje CDATA a z definicje CDATA nie spowoduje wyswietlenia sie znacznika XML. Tutaj istnieje jeszcze jeden klopot wynikajacy z zasad zadzacych sie w CDATA (lub w "starych" komentarzach) dane ciagi znakow parser wylapuje jako niedozwolone.
quiris pisze:Może jakieś odesłania do dokumentacji?
Nie, poniewaz tlumaczylem Ci nawet na dokladnie tym przykladzie dlaczego tego nie znajdziesz w dokumentacji.
quiris pisze:BTW: Dopiero dziś uświadomiłem sobie potęgę korzystania z parserów XML w przeglądarkach . I dotarło do mnie jak głęboko upośledzone jest MSIE w tym względzie
Nie, nie Domel nie daj sie sprowokowac . Nie moge juz mam palce na klawiaturze juz... Uf w ostatniej chwili sie powstrzymalem przed trolowaniem
BTW co masz na mysli w trybie XML - XHTML czy well-formated XML? Bo cos szuje ze to drugie? Jesli dobrze zgaduje do w jaki sposob osadzisz skrypt w XML-u?
- Domel
- Posty: 2252
- Z nami od: 14 kwietnia 2002, 19:10
- Lokalizacja: Białystok
Re: document.write i przyjaciele nie działają w dokumentach
Przeglądarka: Opera/7.50 (Windows NT 5.2; U) [en]
Domel pisze:quiris pisze:Obiło mi się o uszy, że te funkcje są niezgodne z aplikacjami XML. Jeśli tak, to dlaczego?
Przeciez juz raz pytales
Hmm... http://mozillapl.org/forum/viewtopic.php?p=25816#25816
Jak widzisz nie pytałem się o to, tylko napisałem, że nie znalazłem szerszej dokumentacji na ten temat. W tamtym wątku również nie uzyskałem takiego wyjaśnienia jak dziś. Za które oczywiście dziękuję
Tutaj istnieje jeszcze jeden klopot wynikajacy z zasad zadzacych sie w CDATA (lub w "starych" komentarzach) dane ciagi znakow parser wylapuje jako niedozwolone.
Hmm... Mógłbym prosić o bardziej szczegółowe informacje w tym punkcie?
BTW co masz na mysli w trybie XML - XHTML czy well-formated XML? Bo cos szuje ze to drugie?
No i źle trafiłeś, bo mam na myśli tylko i wyłącznie XHTML (application/xhtml+xml). Ta potęga to może zbyt szumne słowo. Chodziło mi o to, że po prostu parser ładnie wyłapuje mi wszelkie błędy składni i widzę od razu gdzie, co poprawić (nie muszę co chwilę walidować dokumentu). Szczerze mówiąc to na tym obszarze zaczynam dopiero stawiać pierwsze kroki. Stąd moje pytania. Być może banalne, ale dla mnie interesujące i ważne.
- quiris
- Posty: 659
- Z nami od: 31 lipca 2002, 06:53
Re: document.write i przyjaciele nie działają w dokumentach
Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.4; MultiZilla v1.5.0.2j) Gecko/20030624
quiris pisze:Hmm... Mógłbym prosić o bardziej szczegółowe informacje w tym punkcie?
http://www.w3.org/TR/2000/REC-xml-20001 ... cdata-sect - CDATA
http://www.w3.org/TR/2000/REC-xml-20001006#sec-comments - komentarze.
BTW co masz na mysli w trybie XML - XHTML czy well-formated XML? Bo cos szuje ze to drugie?
BTW Marcoos wyjasnil to od strony JS, niestety akurat zostal nieumyslnie skasowany podczas modernizacji Mam nadzieje ze powtorzy to co napisal.
- Domel
- Posty: 2252
- Z nami od: 14 kwietnia 2002, 19:10
- Lokalizacja: Białystok
Przeglądarka: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.5) Gecko/20031026 Firebird/0.7
Marcoos wyjasnil to od strony JS, niestety akurat zostal nieumyslnie skasowany podczas modernizacji
Chciałbym zdementować pogłoski - nie zostałem skasowany, jestem cały i zdrowy (no, mam lekki katar, ale to minor issue). Skasowany natomiast został mój post, w którym stwierdzałem, co następuje:
Dokument XML (XHTML, XUL, XAML, whatever_XML) powinien parsowany jednokrotnie. Modyfikacje po parsowaniu powinny dotyczyć już drzewa DOM, a nie kodu (tekstu). Przy jednokrotnym parsowaniu ewentualne skrypty wykonywane są po utworzeniu w pamięci rzeczywistego drzewa DOM. Tak więc document.write() mogłoby trafiać w próżnię, być bez kontekstu.
Oczywiście jedonkrotne parsowanie to przypadek idealny, w praktyce przeglądarki i tak robią to wielokrotnie. Ale w przypadku wielokrotnego parsowania, document.write() pozwala na wstawienie czegokolwiek, co nie jest dobre dla kodu:
- Kod: Zaznacz cały
<div>
<script type="text/javascript">
//<![CDATA[
document.write("</div>");
// ]]>
</script>
</div>
Bez wykonywania skryptu masz jak najbardziej poprawny X(HT)ML.
Ewentualne wykonanie kodu przed parsowaniem mogłoby uszkodzić drzewo dokumentu (gdyby </div> został zinterpretowany). Co zrobić z tym </div>? Zintepretować? Czyli wtedy uznać to drugie (nie-skryptowe) </div> za błąd? I przebudować od nowa całe drzewo?
Zablokowanie document.write() wymusza więc także przestrzeganie standardów. Do obsługi dokumentów XMLowych został stworzony DOM i stosowanie do niego narzędzi stworzonych dla HTML 3.2 nie jest dobrym rozwiązaniem.
document.write() jest stosowane czasami do omijania bugów w Netscape 4 (wstawienie takiego nielogicznego </div> naprawdę w NN4 pomaga w niektórych dziwnych sytuacjach, taka magia starej Szkapy ).
Natomiast, skoro XHTML 2 nie jest^W^Wma nie być zgodny wstecz, to NN4 i tak go nie obsłuży, przez co jedyne jako-tako sensowne zastosowania tego rodzaju sztuczek znika.
- marcoos
- Moderator
- Posty: 2227
- Z nami od: 12 października 2002, 10:25
- Lokalizacja: Wrocław
Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031016 K-MeleonPL/0.8.2 (domel)
marcoos pisze:Chciałbym zdementować pogłoski. - nie zostałem skasowany, jestem cały i zdrowy
Marcoos, Ty zyjesz?
marcoos pisze:Skasowany natomiast został mój post
Tak jakos niefortunnie mi sie napisalo - potwierdzam chodzilo o post
marcoos pisze:Oczywiście jedonkrotne parsowanie to przypadek idealny, w praktyce przeglądarki i tak robią to wielokrotnie.
Mozesz to rozwinac...
marcoos pisze:Bez wykonywania skryptu masz jak najbardziej poprawny X(HT)ML.
No tak ale jak usuniesz komentarze z JS wtedy kod tez bedzie poprawny. Tutaj jest troche sprawa jest zagmatwana. W XHTML 2.0 powinno sie to jakos uproscic tylko jeszcze nie wiadomo jak
Ale napewno duzo sie zmieni poniewaz juz teraz wiadomo ze znacznik noscript "wejsze" do "srodka" znacznika script. Oczywiscie dzieki sekcji CDATA mozna w samym usadowieniu kodu nic nie zmieniac ale coraz czesciej pojawiaja sie glosy zeby usunac wewnetrzne skrypty - pozwoli to na pozbycie sie "zaciemiania" kodu i wreszcie XHTML 2 zblizy sie do konwencji XML-a. (Nie bede sie wglebial w skladnie osadzania zewnetrznych skryptow [i stylow] bo raczej tutaj rowniez sie cos zmieni).
Jesli taki system sie przyjmie to w przyszlosci mozna liczyc na pojawianie sie instrukcji przetwazajacych typu http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/ tylko ze w skryptach.
Czyli cos takiego w rekomendacji XML 2.0 (lub towarzyszacej rekomendacji) :
- Kod: Zaznacz cały
<?xml-script href="hello.js" type="text/javascript"?>
Oczywiscie da sie zrobic namiastke tego w skryptach/stylach wewnetrznych przez kotwice i identyfikator ale to IMHO jest przeginka
Jesli taki scenariusz by sie sprawdzil to wtedy wszsytko bylo by jasne i wszyscy zyli by dlugo i szczesliwie.
marcoos pisze:document.write() jest stosowane czasami do omijania bugów w Netscape 4 (wstawienie takiego nielogicznego </div> naprawdę w NN4 pomaga w niektórych dziwnych sytuacjach, taka magia starej Szkapy ).
Albo przyklad taki: zeby sie tabela wysrodkowala czasami (nie wiem kiedy chyba losowo ) trzeba przed znacznikiem table dodac zamkniecie znacznika p
Wczesniej wspomnialem o komentarzach dlatego pozwole sobie na mala ciekawostke. Mozliwe ze zglosze (jesli bedzie mi to dane) postulat o usuniecie komentarzy (bodz co badz odziedziczonych po skomplikowanym i starym SGML-u) na rzecz instrukcji przetwazania. Poniewaz definicje tych 2-ch tworow sa zbierzne (np oba nie sa czescia character data) wiec przy drobnej modyfikacji mozna by pokusic sie o taki zapis:
- Kod: Zaznacz cały
<?xml-comment *** to jest komentarz *** ?>
Warto rowniez zrobic cos z CDATA - tylko jeszcze nie wiadomo co Bo o ile powstawala specyfikacja XML 1.0 wywalono z niej sekcje SDATA i inne tego typu to z CDATA juz nie bardzo wiadomo co zrobic. Chyba jedynym rowiazaniem jest jakas glebsza reforma ale nie wiem czy ktos sie na nia zdecyduje.
--update--
Wstepnie zostala zaaprobowana moja propozycja, to znaczy w XHTML 2.0 likwidujemy znacznik < script >, w sekcji head bedzie zamieniony na < link > a w sekcji body na < object >.
- Domel
- Posty: 2252
- Z nami od: 14 kwietnia 2002, 19:10
- Lokalizacja: Białystok
Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7a) Gecko/20040108 Firebird/0.8.0+ (marcoos)
Domel pisze:marcoos pisze:Bez wykonywania skryptu masz jak najbardziej poprawny X(HT)ML.
No tak ale jak usuniesz komentarze z JS wtedy kod tez bedzie poprawny.
Dopóki nie używasz & czy < w kodzie skryptu...
Wczesniej wspomnialem o komentarzach dlatego pozwole sobie na mala ciekawostke. Mozliwe ze zglosze (jesli bedzie mi to dane) postulat o usuniecie komentarzy (bodz co badz odziedziczonych po skomplikowanym i starym SGML-u) na rzecz instrukcji przetwazania. Poniewaz definicje tych 2-ch tworow sa zbierzne (np oba nie sa czescia character data) wiec przy drobnej modyfikacji mozna by pokusic sie o taki zapis:
- Kod: Zaznacz cały
<?xml-comment *** to jest komentarz *** ?>
To by było przegięcie. Co komu szkodzi <!-- --> - krótkie, wygodne do napisania. IMVHO jak za bardzo przegniecie, to XHTML 2 nikt nie będzie używał.
--update--
Wstepnie zostala zaaprobowana moja propozycja, to znaczy w XHTML 2.0 likwidujemy znacznik < script >, w sekcji head bedzie zamieniony na < link > a w sekcji body na < object >.
Jak wyżej.
- marcoos
- Moderator
- Posty: 2227
- Z nami od: 12 października 2002, 10:25
- Lokalizacja: Wrocław
Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; PL; rv:1.5) Gecko/20031007
marcoos pisze:Dopóki nie używasz & czy < w kodzie skryptu...
No jak. W sekcji CDATA wszytko powinno przejsc przez parser (nowy parser).
marcoos pisze: XHTML 2 nikt nie będzie używał.
Marcoos, niedoczytales. Po pierwsze chodzilo o XML 2.0 a nie XHTML 2.0. Po drugie jesli by to pszeszlo to bylo by gora w XHTML 3.0.
marcoos pisze:Jak wyżej.
Zapozno
- Domel
- Posty: 2252
- Z nami od: 14 kwietnia 2002, 19:10
- Lokalizacja: Białystok
Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6b) Gecko/20031218 Firebird/0.7+
marcoos pisze:Oczywiście jedonkrotne parsowanie to przypadek idealny, w praktyce przeglądarki i tak robią to wielokrotnie.
Ja tez bym prosil o rozwiniecie. Ostatnie dane jakie mam wzgledem "ilosci parsowania" dotycza NS4.
- Gandalf
- Posty: 1802
- Z nami od: 29 czerwca 2002, 04:37
- Lokalizacja: Warszawa
Kto jest online
Zarejestrowani użytkownicy: Bing [Bot], Google [Bot]