Autor | Zpráva | ||
---|---|---|---|
WanTo Profil |
#1 · Zasláno: 10. 9. 2006, 18:39:16
Potřeboval bych vložit do obyčejného XML (ne XHTML) dokumentu JavaScript. Otázka zní jednoduše: jak na to? Pomocí XHTML to dokážu, ale rád bych se bez něj obešel.
Příklad: <?xml version="1.0" encoding="utf-8"?> <muj-dokument> <muj-skript> <![CDATA[ window.alert("Ahoj"); ]]> </muj-skript> </muj-dokument> |
||
thingwath Profil |
#2 · Zasláno: 10. 9. 2006, 18:42:21
Hm, proč si k otázce přidal i řešení? :-)
|
||
WanTo Profil |
#3 · Zasláno: 10. 9. 2006, 19:19:56
thingwath
To funguje? |
||
thingwath Profil |
#4 · Zasláno: 10. 9. 2006, 19:21:57
Co si představuješ pod funguje?
Jestli si skutečně fajnšmekr, můžeš si přepsat syntaxi JS do XML :-) To by bylo velmi hardcore :-) |
||
nightfish Profil |
#5 · Zasláno: 10. 9. 2006, 19:23:22
To funguje?
Jak si představuješ, že by to mělo fungovat? |
||
WanTo Profil |
#6 · Zasláno: 10. 9. 2006, 19:24:27
Co si představuješ pod funguje?
To samé, co by udělal JavaScript v XHTML. Tedy zobrazil dialogové okno s textem Ahoj. |
||
thingwath Profil |
#7 · Zasláno: 10. 9. 2006, 19:25:44
WanTo
To ale musí udělat interpret Javascriptu, to na XML nezáleží :-) Musíš to XML načíst něčím co bude vědět, že to je JS a že ho tak má spustit... Takové XML může mít milión podob. |
||
WanTo Profil |
#8 · Zasláno: 10. 9. 2006, 19:27:31
thingwath
Toho jsem se právě obával. Takže to jde asi jen pomocí XHTML. |
||
thingwath Profil |
#9 · Zasláno: 10. 9. 2006, 19:29:19
Co sis prosímtě představoval? Pro XTHML je definováno, že to a to je Javascript a odpovídající uživatelský agent s tím může pracovat. V tom tvém XML mohou být třeba pohádky na dobrou noc, jak to má kdo vědět? :-)
|
||
WanTo Profil |
#10 · Zasláno: 10. 9. 2006, 19:32:17
Představoval jsem si, že prohlížeči nějak vysvětlím, že v <muj-skript> je JavaScript.
|
||
thingwath Profil |
#11 · Zasláno: 10. 9. 2006, 19:33:48
Pře-XSLT-uješ to na XHTML?
|
||
WanTo Profil |
#12 · Zasláno: 10. 9. 2006, 19:36:07
S XSLT vůbec neumím, takže asi těžko.
|
||
thingwath Profil |
#13 · Zasláno: 10. 9. 2006, 19:37:28
Není to (tak) těžké. Jenom je to trochu úchylné v tom, že je to vlastně zčásti běžný programovací jazyk s XML zápisem.
|
||
WanTo Profil |
#14 · Zasláno: 10. 9. 2006, 19:39:59
Každopádně bude asi nejjednodušší použít XHTML.
|
||
Chamurappi Profil |
#15 · Zasláno: 10. 9. 2006, 20:03:39
Reaguji na WanTo:
<script xmlns="http://www.w3.org/1999/xhtml"> ... </script> Pak XSLT nepotřebuješ. |
||
WanTo Profil |
#16 · Zasláno: 10. 9. 2006, 20:09:00
Chamurappi
Díky moc, přesně to jsem potřeboval. Celkem by mne zajímalo, jak to vlastně funguje, z mého pohledu je to téměř zázrak :-) Ještě připojím jeden dotaz: jde toto nějak zprovoznit i v IE? Tam se mi místo provedení skriptu vypíše obsah v sekci CDATA. |
||
Chamurappi Profil |
#17 · Zasláno: 10. 9. 2006, 20:33:56
Reaguji na WanTo:
Zázrak to není, použije se <script> z XHTML. Jelikož Explorer XHTML také trochu podporuje, mělo by fungovat tohle: <html:script xmlns:html="http://www.w3.org/1999/xhtml"> ... </html:script> Připrav se, že narazíš na jisté nekompatibility. |
||
WanTo Profil |
#18 · Zasláno: 10. 9. 2006, 20:43:29
Chamurappi
Zkusím to. Každopádně aplikace (resp. paskvil, na kterém se chci naučit AJAX, CGI a ještě tuhle zrůdnost s XML), kterou vytvářím je Linux-only, takže to není až zas tolik důležité. Teďka jsem se však dostal k dalšímu problému: Někde v XML dokumentu mám "odkaz": <odkaz id = "odkaz">Text odkazu</odkaz>. V JavaScriptu se mu pokouším přiřadit ovladač události onclick: function presmeruj() { document.location.href = "http://nejake_stranky"; } document.getElementById("odkaz").onclick = presmeruj; Bohužel, nefunguje to. Skript skončí s chybou "Could not convert undefined or null to object". Co s tím? Je vůbec možné takto přiřadit ovladač události nějakému XML prvku? |
||
Dero Profil |
#19 · Zasláno: 10. 9. 2006, 20:47:02
Bohužel, nefunguje to. Skript skončí s chybou "Could not convert undefined or null to object".
Co s tím? Je vůbec možné takto přiřadit ovladač události nějakému XML prvku? V Mozille lze šamanským způsobem v XML dokumentu atribut id nastavit (pomocí DTD) na typ ID, potom k němu můžeš přistupovat vlastností getElementById. V praxi se však používá procházení obecného stromu dokumentu pomocí getElementsByTagName a vlastností pro práci s potomky. |
||
jozob Profil |
#20 · Zasláno: 10. 9. 2006, 20:48:42
WanTo
"Co s tím?" Využiť výhody XML -- podobne ako v prvom prípade -- využi menný priestor XHTML. :) (to znamená, požičaj si z XHTML aj element A) |
||
WanTo Profil |
#21 · Zasláno: 10. 9. 2006, 21:01:24
jozob
To nechci. Sice je to jednodušší a spolehlivější, ale já mám dost času na hraní a chci to zkusit bez A z XHTML :) Dero Díky moc za nápovědu, začíná se mi dařit. |
||
WanTo Profil |
#22 · Zasláno: 10. 9. 2006, 21:15:53
Hurá, povedlo se mi přesvědčit prohlížeč, aby po kliknutí na <odkaz href = "http://nějaká_adresa">Nějaký text</odkaz> zobrazil odkazovanou stránku :o)
Zde je JavaScript:
|
||
thingwath Profil |
#23 · Zasláno: 10. 9. 2006, 21:25:37
V XML bych možná volil spíš XLink, minimálně Gecko to podporuje.
|
||
WanTo Profil |
#24 · Zasláno: 10. 9. 2006, 21:30:54
thingwath
Podporuje XLink Opera? |
||
thingwath Profil |
#25 · Zasláno: 10. 9. 2006, 21:33:42
Nevím, zřejmě ne. Ale zase když to budeš používat v něčem neprohlížečovém, asi tam nebudou chtít mít celé XHTML jenom kvůli odkazům (proč vůbec XHTML nepoužívá XLink?).
|
||
Jirka Kosek Profil * |
#26 · Zasláno: 10. 9. 2006, 22:35:54
Proboha proč to řešit JavaScriptem? Nejlepší by bylo použít XLink, ten však popodporuje jen Mozilla. Takže buď vlastní element nebo XLink a chování dodefinovat v HTC pro IE, v XBL pro Mozillu (pokud nepoužijete XLink) a v Opeře se dá odkaz "zaktivnit" pomocí:
odkaz { -o-link: attr(href); -o-link-source: current; text-decoration: underline; } Nicméně jediná spolehlivá metoda, jak XML zobrazit v prohlížeči včetně obrázků a odkazů, je z toho ještě na serveru (nejlépe pomocí XSLT) udělat HTML (nebo XHTML). |
||
WanTo Profil |
#27 · Zasláno: 11. 9. 2006, 18:23:08
Jirka Kosek
Já vím, že to jde mnohem jednodušeji. Jen si hraju :-) |
||
Časová prodleva: 9 měsíců
|
|||
webcreator Profil |
#28 · Zasláno: 12. 6. 2007, 20:39:48
mam takovej problem, neco podobnyho jsem udelal tak, ze to kazdejch 20ms otevira xml, ale zapomel jsem to zavirat a porad to zvetsuje zaplneni RAM, takze se vas ptam, jak se zavira otevreni xml
|
||
Manq Profil |
#29 · Zasláno: 12. 6. 2007, 21:05:49
webcreator
neotvírej stráré téma |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0