[js]Mozilla/iframe/top.window

Pagina: 1
Acties:

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
ik ben bezig een page te construeren die gebruik maakt van het principe waarbij content via een hidden frame overgeheveld wordt.
In IE werkt het allemaal prima mar Mozilla laat het afweten.
Reden: hij mekkert dat ie niets in het parent-window kan aanspreken vanuit het iframe.

Nou had ik in de search wat topics gevonden hierover maar de meest essentiele zijn fokt up (door een nieuwe versie van React?).

Het werkt als volgt:

parent window bevat een iframe.
In het iframe wordt een pagina geladen.
die pagina roept onload een functie aan in de parent.
Die functie zorgt ervoor dat de content gespiegeld wordt naar de DIV in de parent.

De aanroep van de fucntie is als volgt:

code:
1
<body onload="top.writeContent(document.body.innerHTML);">


of om een image te swappen:
code:
1
2
3
4
5
<script language="JavaScript" type="text/javascript">
if(top.document.images('pageTitle').src != "public/images/home_pagetitle_1_0.gif"){
    top.document.images('pageTitle').src = "public/images/home_pagetitle_1_0.gif";
}
</script>


De errors van Mozilla zijn als volgt:
Error: top.writeContent is not a function
Error: top.document.images is not a function
Source File: http://localhost/public/box.php
Line: 33
iemand die me op weg kan helpen wat de juiste referentie is naar het parent cq top window?

www.jurgroessen.nl


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:19

crisp

Devver

Pixelated

Staan de pagina's wel allemaal op hetzelfde domein?

Intentionally left blank


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
yep, alles draait op de localhost, de op te vragen pages staan 1 dir hoger.
Maar IE(5 en 6) doen het wel, die zouden dan minimaal met een melding "access denied" moeten komen oid..

www.jurgroessen.nl


Verwijderd

HTML:
1
parent.test.document.body.innerHTML //waar test de naam van de iframe is


ff een voorbeeldje
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
29
30
31
32
33
34
35
36
37
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
#schrijf {
    width: 300px;
    height: 300px;
    position: fixed;
    top: 30px;
    right: 30px;
    border: 1px #999 dotted;
}
iframe {
    display:none;
    width: 0px;
    height: 0px;
        border 0px;
    overflow: hidden;
}
</style>
<script type="text/javascript">
function getter(){
    cont = parent.test.document.body.innerHTML;
    docbody = document.getElementById('schrijf');
    textNode = document.createTextNode(cont) 
    docbody.appendChild(textNode)
}
onload=getter;
</script>
</head>

<body>
<iframe name="test" src="test.htm"></iframe>
<div id="schrijf"></div>
</body>
</html>

[ Voor 96% gewijzigd door Verwijderd op 21-02-2003 14:21 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:19

crisp

Devver

Pixelated

Ook een voorbeeldje dat overigens hier perfect werkt in Mozilla (en meteen laat zien dat Opera een beetje buggy is wb innerHTML):

top.hml
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
<head>
<script type="text/javascript">

function doeiets(content) {

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

}

</script>
</head>
<body>
<div id="divje"></div>
<div style="position: absolute; top: 0px; left: 0px; visibility: hidden">
  <iframe src="got/iframe.html"></iframe>
</div>
</body>
</html>


got/iframe.html:
code:
1
2
3
4
5
6
7
8
<html>
<head>
</head>
<body onload="top.doeiets(document.body.innerHTML)">
<h1>Hij doet ut!</h1>
NB; dit gaat fout in Opera: &lt;h1&gt;stoute opera!&lt;/h1&gt;
</body>
</html>

Intentionally left blank


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
hmm, da's weer mooi k*t; als ik het ding strip werkt het weer wel..het bugged dus weer heerlijk ergens :(

zo dus

ik zal iig Shadow3333 z'n voorbeeld ff onder de loep nemen, niet dat jouwe niet goed is crisp maar dat is 2 druppels water zoals ik het gedaan had :)

www.jurgroessen.nl


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:19

crisp

Devver

Pixelated

Hangloozz schreef op 21 February 2003 @ 16:10:
hmm, da's weer mooi k*t; als ik het ding strip werkt het weer wel..het bugged dus weer heerlijk ergens :(

zo dus

ik zal iig Shadow3333 z'n voorbeeld ff onder de loep nemen, niet dat jouwe niet goed is crisp maar dat is 2 druppels water zoals ik het gedaan had :)
Heb je 'm ook geprobeerd in Opera? - kan je lachen ;) (innerHTML is eigenlijk ook wel een beetje ranzig)

[ Voor 3% gewijzigd door crisp op 21-02-2003 16:13 ]

Intentionally left blank


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
nou persoonlijk moet ik meer om Opera lachen ;)
Sorry, maar ik kan die browser nog steeds niet serieus nemen :/ als ik de Browserhawk er op na sla komt het totale aandeel Opera-users nét boven de 1 procent...niet echt een gefundeerde reden om rekening mee te houden; dan is het aandeel Netscapers nog groter.

www.jurgroessen.nl


Verwijderd

Opera blijft het sukkeltje van de klas, je weet wel dat jongetje wat altijd gepest word :)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:19

crisp

Devver

Pixelated

Verwijderd schreef op 22 February 2003 @ 12:37:
Opera blijft het sukkeltje van de klas, je weet wel dat jongetje wat altijd gepest word :)
:D

Intentionally left blank


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24
Verwijderd schreef op 22 February 2003 @ 12:37:
Opera blijft het sukkeltje van de klas, je weet wel dat jongetje wat altijd gepest word :)
:D

maar iets zegt me dat je daar nog een moraal aan wilde hangen...zoiets als een verwijzing naar Bill Gates ofzo...

www.jurgroessen.nl


Verwijderd

Hangloozz schreef op 22 February 2003 @ 15:40:
maar iets zegt me dat je daar nog een moraal aan wilde hangen...zoiets als een verwijzing naar Bill Gates ofzo...
Nop, dit schoot me zomaar te binnen, vond het eigenlijk wel toepasselijk op deze situatie, Opera is het telkens net niet.
Pagina: 1