Toon posts:

XML/XSL probleem en/of iframe probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Oke eerst even een korte inleiding. Ik heb een chatprogramma dat elke 5 minuten een nieuwe xml bestand gaat genereren met de standen van een spelletje. Er is nog een tweede xml bestand dat niet zo vaak wijzigt en er zo voor zorgt dat het eerste bestand niet zo erg groot wordt.

Nu komen de problemen. Ik heb een xsl geschreven die prima werkt. Ik wil alleen graag dat de pagina kan worden aangeroepen in een html pagina. Omdat ik niet weet wat voor een webserver mijn klanten hebben kies ik voor javascript om de pagina te tonen.

Probleem 1:
De xml-xsl toont wel in internet explorer en niet in mozilla. Ik heb al zoveel sites erover geraadpleegd, maar ook de voorbeelden die daarop staan krijg ik niet werkend. Dus weet misschien iemand hoe ik dit werkend krijg.

JAVASCRIPT van http://www.quirksmode.org/dom/importxml.html aangepast
code:
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
var xml;
var xsl;
//dit is voor mozilla
if (document.implementation && document.implementation.createDocument)
{
   xml = document.implementation.createDocument("", "", null);
   xsl = document.implementation.createDocument("", "", null);
   xml.load("snirc.xml");
   xsl.load("layout.xml");//ik kan hem geen xsl noemen omdat mn webserver dat niet ondersteunt
//wat moet ik hier zetten om de xsl toe te passen op de xml
}
else if (window.ActiveXObject)
{
   xml = new ActiveXObject("Microsoft.XMLDOM");
   xml.async="false";
   xsl = new ActiveXObject("Microsoft.XMLDOM");
   xsl.async="false";
   xml.load("snirc.xml");
   xsl.load("layout.xml");
   document.write(xml.transformNode(xsl));
//dit werkt prima, de transformNode kan ik
//alleen niet toepassen in de mozilla, vandaar dat ik het gescheiden heb
}
else
{
   alert('Your browser can\'t handle this script');
//dit zie ik verder nooit
}

Dit staat op www.heijst.demon.nl/test/triv.html (werkt dus alleen met internet explorer, met mozilla mist de opsomming van de spelers)

Ik heb ook hier http://www.sitepoint.com/article/xml-javascript-mozilla/1 gevonden dat je via mozilla het zo moet oplossen, maar ik krijg daar een error bij de readXml

Probleem 2
Eigenlijk had ik de moed al een beetje opgegeven om dat werkend te krijgen. Dus bedacht ik me, laat ik een iframe maken en de xml gewoon via de normale <?xml-stylesheet type="text/xsl" href="layout.xml"?> tonen. Dus gewoon de pagina zo laten en binnen html tonen.(in mijn eigen code noem ik hem dan mozilla.xml omdat ik het dan alleen in mozilla zo zal oplossen.)
dit staat op www.heijst.demon.nl/test2/triv.html (werkt in mozilla en in internet explorer)
Het probleem hier is mijn CSS. Ik heb meerdere stijlen en wanneer ik mijn stijl verander, verandert de stijl van de iframe niet. Ik heb het gevoel dat hij de cookie ook niet goed gebruikt, omdat ook wanneer je op een link druk van zo'n speler wordt daar gewoon weer de default css aangeroepen. Mijn stijlswitcher is gewoon de standaardcode van die ik via got en google regelmatig voorbij zie komen http://www.alistapart.com/articles/alternate

Hij maakt wel netjes de cookie aan en gebruikt ook de gegevens wanneer je weer afsluit en opnieuw oplaad. (tenminste dat werkt in het eerste voorbeeld wel).
In internet explorer blijft het onderste gedeelte van de pagina grijs, dat is een bug van internet explorer want na minimaliseren en weer opnieuw openen past hij de refresh wel goed toe. In mozilla wordt het font in de iframe niet aangepast, dus volgens vervangt hij gewoon de hele achtergrond en veranderd niet de iframe mee. Ook daar is na het klikken op een link de volgende pagina gewoon weer via de default style.

Omdat misschien mijn provider geen goede ondersteuning geeft heb ik mijn site ook ergens anders ondergebracht maar dat geeft geen verandering.

Kortom, kan iemand mij helpen 1 van de 2 manieren werkend te krijgen, want ik ploeter al een week en maak geen vooruitgang

Verwijderd

Topicstarter
Ik ben nog verder gegaan met experimenteren. Ook http://www.mozilla.org/projects/xslt/js-interface.html wil me niet echt lukken.
Is er nog een andere manier dan via (i)frames om gewoon de pagina binnen een html pagina te tonen?

  • HawVer
  • Registratie: Februari 2002
  • Laatst online: 06-05 18:56
Een aantal manier zijn om dit op te lossen. Maar gebruik van asp om je xsl te kunnen parsen. Met php kan dit ook maar dan moet je een extra library toevoegen. Ik denk dat ze dat niet snel zullen doen bij demon.
Verder zou je ook een script kunnen schrijven die zelf de waarden uit het xml bestand uitleest en vervolgens op de pagina neerzet. Zou op zich niet zo heel moeilijk moeten zijn. Dan kun je de xsl stap overslaan.

Het veranderen van de stijl bij probleem 1 levert geen problemen op. Geen van je punten zie ik fout gaan. Winxp Firefox 1.0

http://hawvie.deviantart.com/


Verwijderd

Topicstarter
Het probleem met de styles doet zich alleen voor wanneer een vervolgpagina wordt geopend. Op deze nieuwe vervolgpagina wordt direct weer de standaard style gebruikt.

Demon levert geen ondersteuning voor ASP of PHP, alleen cgi. Daarom heb ik dus ook alles via javascript gedaan. Op www.heijst.demon.nl/test/snirc4.html?nick=1 heb ik via javascript een soort cgi ondersteuning gemaakt en inderdaad ook geprobeerd via javascript de xml te parsen, alleen ik krijg weer een fout in Firefox (node has no properties in line 10)

Als het nodig kan ik de code ook op het forum zetten. Ik heb speciaal mijn javascript verwerkt in de html pagina zodat de source goed zichtbaar is.

PS
Ik weet dat de code niet mooi is maar ik ben nog lerende :)

Verwijderd

Topicstarter
Ok ik heb het eindelijk werkend gekregen en zoals altijd achter af is het heel logisch.

Ik had dus een iframe in de pagina staan. Deze iframe gebruikte dezelfde style switcher als de hoofdpagina.
Wanneer iemand op de andere style klikte, dan werd deze doorgevoerd in de hoofdpagina en niet in de iframe. Daarom refresh ik de iframe ook. Gevolg is dat de iframe de cookie benadert met zijn oude gegevens nog en zijn default css weer wegschrijft. Gevolg het leek net alsof de styleswitcher niet werkte. Ik heb de iframe nu een aangepaste styleswitcher gegeven, namelijk zonder write commando's en hij werkt nu.

Slotje pls