[JS] Dynamisch .txt inladen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • compubink
  • Registratie: September 2000
  • Laatst online: 25-09 11:07

compubink

...====...

Topicstarter
Ik ben bezig een website te ontwikkelen voor een klant. Deze website draait op een server met een eigen CMS en geen server side scripting mogelijkheden, door deze beperking loop ik tegen een probleem aan.

In de site heb ik een div waar een dynamische tekst moet komen te staan. Dit wil ik mogelijk maken door het inladen van een txt bestand welke door de gebruiker via het CMS aangepast wordt. Het probleem is dat de CMS HTML code aan het bestand toevoegd, hierdoor wordt het niet juist gekopieërd naar de DIV.

Een voorbeeld txt bestand om in te laden:
HTML:
1
2
3
4
<HTML xmlns:o = "urn:schemas-microsoft-com:office:office"><HEAD><BASE href=http://www.xxx.nl/>
<META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD>
<BODY>
<P class=toptekst><FONT face=Arial><STRONG>xxxxxx<BR><B><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-family: Tahoma">xxxxxxxxxxxx </SPAN></B><B><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-family: Tahoma"><FONT size=3>xxxxxxxxxx<o:p></o:p></FONT></SPAN></B></P></BODY></HTML>


Op mijn pagina heb ik een div fronttext waar de tekst ingeladen moet worden en een iframe die het bestand met de tekst als src heeft. Ik gebruik de volgende code om de tekst te kopieëren:

JavaScript:
1
2
3
4
5
6
7
function getFronttext() {
    var myIFrame = document.getElementById('hiddeniframe');
    var content = myIFrame.contentWindow.document.body.innerHTML;

    document.getElementById('fronttext').innerHTML = content;

}


Het probleem is nu dat op de pagina de code letterlijk wordt gekopieërd, de div bevat dus:
HTML:
1
2
3
4
<HTML xmlns:o = "urn:schemas-microsoft-com:office:office"><HEAD><BASE href=http://www.xxx.nl/>
<META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD>
<BODY>
<P class=toptekst><FONT face=Arial><STRONG>xxxxxx<BR><B><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-family: Tahoma">xxxxxxxxxxxx </SPAN></B><B><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-family: Tahoma"><FONT size=3>xxxxxxxxxx<o:p></o:p></FONT></SPAN></B></P></BODY></HTML>

Hoe kan ik er nu voor zorgen dat alleen de body zichtbaar wordt in de DIV?

Acties:
  • 0 Henk 'm!

  • Pete
  • Registratie: November 2005
  • Laatst online: 07-09 17:51
Een regular expression op <BODY> </BODY> min de body tags. (Of een search and substring selection)

Ik adviseer je echter om het format van je text-bestanden te wijzigen en nog idealer, proberen je klant te overtuigen van het nut van een server mét server-side scripting. Je huidige situatie is verre van ideaal te noemen.

[ Voor 7% gewijzigd door Pete op 29-10-2008 05:46 ]

petersmit.eu


Acties:
  • 0 Henk 'm!

Verwijderd

Zo te zien worden deze documenten opgemaakt met Word o.i.d., of wordt de content gecopy-paste vanuit een dergelijk Office-programma. Ook dat is niet ideaal. Naast de HTML buiten de <body> levert het ook vreselijke code op.

Daarnaast is het inladen van content d.m.v. JavaScript het beste wat je kunt doen als je je site niet gevonden wilt laten worden in zoekmachines en ontoegankelijk wilt maken voor mensen met alternatieve browsers.

Overstappen naar een server met server-side scripting is misschien een grote stap voor de klant, maar de voordelen van een CMS met een WYSIWYG-editor die mooiere HTML-content genereert zonder body-tags en die de pagina server-side in elkaar zet wegen denk ik absoluut zwaarder.

Acties:
  • 0 Henk 'm!

Verwijderd

Werkt
JavaScript:
1
var content = myIFrame.contentWindow.document.body.innerText || myIFrame.contentWindow.document.body.textContent;

niet?

Acties:
  • 0 Henk 'm!

  • compubink
  • Registratie: September 2000
  • Laatst online: 25-09 11:07

compubink

...====...

Topicstarter
Bedankt! Idd werkte de laatste oplossing.....

Acties:
  • 0 Henk 'm!

  • MuisM4t
  • Registratie: Mei 2007
  • Niet online
Ik zou geen content met javascript gaan inladen ivm zoekmachines en anderen die geen javascript aan boord hebben.

Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Ik begrijp niet zo goed hoe er een CMS kan draaien zonder server side scripting? Heb je misschien wat meer informatie over het CMS?

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31

Bosmonster

*zucht*

MuisM4t schreef op vrijdag 19 december 2008 @ 13:35:
Ik zou geen content met javascript gaan inladen ivm zoekmachines en anderen die geen javascript aan boord hebben.
Mwah hoeft op zich geen probleem als het onubtrusive gedaan wordt.

Als je de externe bestanden simpelweg in de href zet (href="content.html") en deze links met javascript rewrite, kan een zoekmachine en iemand met javascript ook nog enigszins uit de voeten ermee. Met AJAX doe je vaak niet veel anders.

Het blijft niet ideaal natuurlijk, dat ben ik met je eens.
Pagina: 1