[JS] Input in iframe bewerken

Pagina: 1
Acties:

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025
Ik probeer in een iframe de waarde van een veld te veranderen vanuit het parent document.

Ik krijg echter voortdurend het idee dat die velden niet bereikbaar zijn; hoewel document.getElementById('driver') een IFrameElement oplevert dat volgens mij een contentDocument zou moeten hebben schijnt dat contentDocument undefined te zijn, evenals window.frames['driver'].

Zie de index. Ideëen?

Rustacean


Verwijderd

ja, op het moment dat je die var driver definieert bestaat je iframe nog niet

dit kan je dus pas doen als dat wel het geval is (in code onder je iframe of onload)

Verwijderd

Denk dat je contentWindow bedoelt.

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
  <head>
    <script type="text/javascript">
window.onload =function (e) {
  var frame = document.getElementById('hoeMoeilijkKanHetZijn');
  var frameWindow = frame.contentWindow;
  alert(frameWindow);
}
    </script>
  </head>
  <body>
    <iframe id="hoeMoeilijkKanHetZijn"></iframe>
  </body>
</html>

[ Voor 46% gewijzigd door Verwijderd op 18-03-2005 17:40 ]


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025
Hmmm, dat heeft goed gewerkt. Dank voor jullie hulp! Ik dacht toch echt (door de DOM Inspector) dat er een contentDocument moest zijn, maar met het contentWindow gaat het zo wel goed.

Nu een volgende vraag: ik wil vanuit het iframe een functie in de originele pagina aanroepen. Ik probeer dat nu te doen met window.parent._load(state), maar dat werkt niet. Ik heb dit gejat van Google Maps (onder het motto beter goed gejat...), dus ik dacht dat het niet zou werken, maar ik ben kennelijk een onwijze n00b wat JS betreft.

Rustacean


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

crisp

Devver

Pixelated

parent.functienaam() zou gewoon moeten werken hoor.. Heet die functie echt wel letterlijk _load (dus inclusief underscore?)

Intentionally left blank


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025
Zie de link in de TS. Heet toch echt _load() (of test() voor een testfunctie).

Rustacean


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

crisp

Devver

Pixelated

hier is je probleem:
HTML:
1
<script type="text/javascript" src="/games/stap-op/assets/lib.js" />

Je kan en mag je script-element niet zo afsluiten en al helemaal niet als je je document als text/html verstuurd (wat ook uit den boze is voor XHTML1.1). Overigens snap ik ueberhaupt niet waarom je XHTML1.1 gebruikt; iframe is geen geldig element in XHTML1.1 en de validator heeft nog wel meer te klagen... Gebruik toch gewoon HTML 4 Transitional hiervoor...

En nog een puntje: declareer je variabelen in javascript. Nu schop je alles in de global scope (vervuiling) en het levert strict warnings op.

[ Voor 21% gewijzigd door crisp op 19-03-2005 13:35 ]

Intentionally left blank


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025
Ja, dat is een beetje gewoonte geworden. Als ik nog wat meer dingen werkend heb zal ik de markup eens gaan fixen. Bedankt voor je hulp, weer een bugje gefixed. Voor de zekerheid: in principe zouden er geen gedragsverschillen moeten bestaan tussen iframes met display: none; en iframes zonder dat, toch?

Rustacean

Pagina: 1