Toon posts:

css in editable iframe

Pagina: 1
Acties:

Verwijderd

Topicstarter
hoi
ik zie in verschillende posts dat je op een of andere manier een css file kan koppelen aan de inhoud van een (editable) iframe, maar het lukt niet zoals ik het probeer:
code:
1
2
3
4
function cssToepassen()
{
iView.document.body.innerHTML = '<link href="<%=cssfile%>" rel="stylesheet" type="text/css">';
}

en een beetje verderop
code:
1
<iframe id="iView" onLoad="cssToepassen()"></iframe>


ik snap er zo langzamerhand echt geen * meer van...

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 20:56
code:
1
2
3
4
5
function cssToepassen()
{
var iframe = document.getElementByID(iView);
iframe.document.body.innerHTML = '<link href="<%=cssfile%>" rel="stylesheet" type="text/css">';
}

zoiets zou het moeten doen lijkt me...

Regeren is vooruitschuiven


Verwijderd

Topicstarter
heel vreemd....

als ik dit neerzet geeft ie een fout aan als de pagina laadt. (error on page)

als ik de regel 'var iframe blablabla' uitcomment niet meer.

maar werken doet het niet ;(

als ik doe
code:
1
iView.document.body.innerHTML = 'hallo';

doet ie het wel (nou ja... hij zet er hallo neer, maar dat is uiteindelijk natuurlijk niet echt de bedoeling :|)

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 16:25
Mag je iframes dan vanuit een andere pagina met javascript aanpassen? Ik heb sterk het idee dat dit niet mag.

Verwijderd

Topicstarter
heb je een andere manier dan? :)

btw. het werkt wel een beetje (namelijk met 'hallo' ipv html code)

[ Voor 53% gewijzigd door Verwijderd op 23-04-2004 20:29 ]


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 20:56
Verwijderd schreef op 23 april 2004 @ 19:47:
heel vreemd....

als ik dit neerzet geeft ie een fout aan als de pagina laadt. (error on page)
Ow sorry, typo in code, het moet natuurlijk "getElementById" zijn... 8)7

Regeren is vooruitschuiven


  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
En je vergeet de aanhalingstekens ;) document.getElementById('iview')

[ Voor 34% gewijzigd door kleautviool op 23-04-2004 23:40 ]


Verwijderd

Topicstarter
hij geeft een leeg scherm met error on page ('iView' is undefined)

code:
1
2
3
4
5
function cssToepassen()
{
var iframe = document.getElementById('iView');
iframe.document.body.innerHTML = '<link href="<%=cssfile%>" rel="stylesheet" type="text/css">';
}


:S

kan wat ik wil eigenlijk wel???

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 20:56
Voor zover mijn tests uitwijzen iig niet op deze manier...
innerHTML was btw zowieso geen optie aangezien die de inhoud vervangt, niet iets er aan toevoegt. Anyway in welke context wil je het stylesheet veranderen. Is de inhoud een daadwerkelijke pagina?

Regeren is vooruitschuiven


Verwijderd

Topicstarter
het maakt niet uit als het alles vervangt...

het is een editor voor een cms. het is de bedoeling dat de tekst in het iframe er hetzelfde uitziet als op de webpagina waarop het moet komen.

aangezien de opmaak van die pagina met een css filetje gedaan wordt, dacht ik als ik nou datzelfde css filetje aan het iframe hang dan ziet het er mooi hetzelfde uit. maar dat bleek dus lastiger dan gedacht.

de bedoeling van deze functie was dus dat het (voordat de bezoeker er in gaat typen) de opmaak bepaalt door een koppeling naar een css file.

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 20:56
Dat zoiets de bedoeling was had ik al begrepen ;)....

Wat ik me afvraag is hoe de rest van de code eruit ziet, wat doe je precies met het iframe?? Content inkloppen in een <textarea> kan immers ook. Oftwel misschien is er een andere manier om hetzelfde resultaat te bereiken....

Regeren is vooruitschuiven


Verwijderd

Topicstarter
ok ik weet niet precies welke code je nog meer zou willen zien, maar hier is de hele testpage... http://www.planet.nl/~hovel010/richtext/richtext.zip

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 20:56
Ik bedoelde de HTML die uitsgespuugd wordt door je ASP-script (geen ASP beschibaar hierzo...).
Maargoed wat ik kon opmaken uit het script is dat bijv tabellen worden ingevoegd middels
code:
1
iView.insertHTML(html);
. Wat je dus zou kunnen proberen is
code:
1
2
3
4
5
function cssToepassen()
{
iframe= document.getElementById('iView');
iframe.insertHTML = '<head><link href="<%=cssfile%>" rel="stylesheet" type="text/css"></head>';
}

Door de link tussen <head> tags te plaatsen zou de link ook nog eens niet in de body van je editable tekst geplaatst worden waardoor de onsubmit-waarde niet veranderd (hoe je de link er niet uit te vissen naderhand...). Maargoed dit is gewoon ene hersenspinsel.. Als het niet werkt en je post de html-output wil ik er wel ff mee prutsen, als je de inhoud kan aanpassen moet het toch mogelijk zijn om er een stylesheet aan te plakken, nietwaar,.,.

[ Voor 8% gewijzigd door T-MOB op 24-04-2004 12:01 ]

Regeren is vooruitschuiven


Verwijderd

Topicstarter
hehheh de tabel functie werkt ook nog niet :D sorry ;) daar ben ik zelf nog een beetje mee aan het prutsen...
wat wel werkt is de switchview functie, daar staat een dergelijk gebruik van iView.document.body.innerHTML wel (daar werkt het ook)

ik heb het html doc gezet op www.planet.nl/~hovel010/richtext/html.txt


(insertHTML is geloof ik geen bestaande functie)

[ Voor 9% gewijzigd door Verwijderd op 24-04-2004 12:07 ]


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 20:56
Jabba, dabba dûh.....

Als je de iframe gewoon een src="htmlPaginaMetdeVolgendeInhoud.html" geeft werkt het prima :)
code:
1
2
3
4
<html>
<head>
<link rel="stylesheet" type="text/css" href="<%=cssfile%>" />
</head>

Regeren is vooruitschuiven


Verwijderd

Topicstarter
works like a charm tnx!
Pagina: 1