[javascript] iframe element aanmaken / vullen

Pagina: 1
Acties:

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Weet iemand wat er fout is aan deze code? Ik krijg een onbekende runtime error
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// iframe aanmaken
objIframe = document.createElement('<iframe>');

      // properties definieren
    //objIframe.name = 'editLayer';
    //objIframe.style.width = '100%';
    //objIframe.style.pixelWidth = 250;
    //objIframe.id = 'editLayer';

    objIframe.innerText = 'blaat';

      // vullen met data uit xmlstream
    //objIframe.innerHTML = fnFillField('editLayer','iframe','content','text');

// in document plakken
document.getElementById('editLayerAppend').appendChild(objIframe);

Alles wordt gewoon via <body onLoad="defunctie()"> aangeroepen..

Als 't op de een of andere manier niet blijkt te kunnen, weet iemand hier een oplossing om data na een iframe te schrijven ?!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Dat mag niet volgens mij :) aangezien dat een 'potential security risk' is.

Er zijn wel andere manieren voor. je kan bijv. je iframe script een doc in laten laden die zélf deze zooi instelt

Stop uploading passwords to Github!


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

createElement hoeven volgens mij geen < en > in :P

dus createElement('iframe')

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Heb ik ook al geprobeerd.. helpt niet..

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 23:17

RM-rf

1 2 3 4 5 7 6 8 9

createElement is beperkt tot werkelijk page-elements en geen window-objects zoals FRAME en IFRAME
As of Internet Explorer 5, you can create all elements programmatically, except for frame and iframe. In addition, the properties of these created elements are read/write and can be accessed programmatically. Before you use new objects, you must explicitly add them to their respective collections or to the document. To insert new elements into the current document, use the insertBefore or appendChild methods.
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/createelement.asp
vreemd genoeg geeft msdn wel een voorbeeld waarin ze zelf in msie6 een IFRAME creeeren, echter dat heeft te maken juist met security restrictions
http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/security.asp

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Jouw quote zegt letterlijk adt het wel kan. n ik heb het geprobeerd het werkt prima.. Alleen krijg ik ook fouten als ik innerText probeer te veranderen...

Verwijderd

En wat moet die innerText precies gaan doen dan? Volgens mij wordt alles tussen <iframe> en </iframe> gewoon volkomen genegeerd, en het is eigenlijk ook onzin om iets tussen de iframe tags te zetten. Ik zou niet weten waarom het geen empty element is trouwens.

Als je iets in die iframe wilt zetten, moet je objIframe.document.body.innerText gebruiken lijkt me.

[edit: toevoeging]
Een iframe is min of meer ook een instantie van het window object natuurlijk, en het window object kent geen innerHTML en innerText properties.

  • Bluestorm
  • Registratie: Januari 2000
  • Laatst online: 20-08-2022
Volgens mij kun je in IE de tekst tussen de tags wel uitlezen met innerHTML.

Verder is het aanspreken van het document in de Iframe verschillend voor IE en Mozilla dacht ik. (eens even kijken hoe dat zat, weet zeker dat ik zoiets gemaakt heb een keer)

Tenminste... dat [ denk / zie / weet ] ik... | Javascript obfuscator | foto's en video's uploaden


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op woensdag 19 juni 2002 18:40 schreef Cheatah het volgende:
En wat moet die innerText precies gaan doen dan? Volgens mij wordt alles tussen <iframe> en </iframe> gewoon volkomen genegeerd, en het is eigenlijk ook onzin om iets tussen de iframe tags te zetten. Ik zou niet weten waarom het geen empty element is trouwens.

Als je iets in die iframe wilt zetten, moet je objIframe.document.body.innerText gebruiken lijkt me.

[edit: toevoeging]
Een iframe is min of meer ook een instantie van het window object natuurlijk, en het window object kent geen innerHTML en innerText properties.
Ben ik volledig met je eens, maar volgens MSDN heeft een iframe dus wel degelijk een innerText property :P

Verwijderd

Op woensdag 19 juni 2002 19:02 schreef Bosmonster het volgende:

Ben ik volledig met je eens, maar volgens MSDN heeft een iframe dus wel degelijk een innerText property :P
Hmmja ik zie het, maar waar is dat voor eigenlijk? :?
Zet eens een script tussen iframe tags, een simpele alert ofzo, en het wordt gewoon volkomen genegeerd.

  • HunterPro
  • Registratie: Juni 2001
  • Niet online
Op woensdag 19 juni 2002 19:06 schreef Cheatah het volgende:

[..]

Hmmja ik zie het, maar waar is dat voor eigenlijk? :?
Zet eens een script tussen iframe tags, een simpele alert ofzo, en het wordt gewoon volkomen genegeerd.
alles wat je tussen <IFRAME> </IFRAME> zet, wordt genegeerd door IE en NS6+, maar een andere browser zal het wel weergeven. Daar kan je dan een tabletje of zo neerdroppen met de zelfde gegevens.

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 31-08 12:55
Ok, het IFRAME object is zeker in IE een beetje een vaag gevalletje... Het is half een frame, half een layer (CSSP-Container, DIV wat jij lekker vindt klinken)...

In ieder geval is het op twee manieren te benaderen: via document.all en via self.frames.

Het vage is dat je via document.all wel style dingetjes kunt aanroepen, maar het iframe heeft geen InnerHTML waar je naar kunt schrijven zoals een gewone DIV (vandaar de error). Je kunt de content aanpassen met:

self.frames.editLayer.src = "URL";

of

self.frames.editLayer.document.open();
self.frames.editLayer.document.write("Jaajjaaa");
self.frames.editLayer.document.close();

Moet je zelf de x-browser dingetjes voor Netscape/Mozilla nog wel even uitzoeken....

Suc6

P.S. Je kunt met de volgende functie eenvoudig kijken welke eigenschappen een object in JS heeft:

function Test(Obj)
{var PropStr = "";
for(i in Obj)
{PropStr += i + " = " + Obj[i] + "\n";
}
self.alert(PropStr);
}

Verwijderd

Ik zie in de JAVASCRIPT ook helemaal geen code voor de <body onload="defunctie()">
Die moet er wel staan he :)

Verwijderd

en als je er nou es ff wat code voor 'defunctie()' omheen zet, dus

<script language="JavaScript">
public defunctie() {
//jou code
}
</script>

of iets dergelijks?

helpt misschien wel..... :7

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

volgens mij had r0bert daar wel aangedacht ;)

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Bosmonster:
volgens mij had r0bert daar wel aangedacht ;)
hehe jaw :)

heb framenaam.document.body.innerHTML gebruikt.. dat werkt prima ..
Pagina: 1