Toon posts:

[js] hoe vanuit iframe hoofpagina en ander iframe aanspreken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een html pagina met daarin een textinput met id "img_url". Verder staan er 2 iframes op de pagina: "i_img" en "preview". In "i_img" is een pagina geladen met alleen een dropdown menuutje:

code:
1
2
3
4
5
6
7
8
9
10
11
12
+------------------------------------+
| hoofddocument                      |
|                                    |
|       +--------------+ +---------+ |
| URL:  | img_url      | | iframe  | |
|       +--------------+ |         | |
|                        | preview | |
|       +--------------+ |         | |
| Kies: | iframe i_img | |         | |
|       +--------------+ +---------+ |
|                                    |
+------------------------------------+

Het dropdown menuutje op de pagina in iframe "i_img":
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
<script>
function update(img) {
  window.opener.getElementById('img_url').value = img;
  window.opener.getElementById('preview').value = '<img src="'+ img +'">';
}
</script>

<select onchange="update(this.options[this.selectedIndex].value);">
  <option value="20050413.jpg">nicole kidman</option>
  <option value="31193245.gif">nicole richie</option>
  <option value="543b4364.jpg">nicole eggert</option>
</select>


De bedoeling is dat als je in het dropdown menuutje een plaatje selecteert, de naam van dit plaatje in de "img_url" textbox gezet wordt en dat het plaatje in het "preview" iframe geladen wordt.

Ik dacht "de iframes worden geladen door het hoofddocument, dus ik moet in de update functie window.opener gebruiken", maar dat is dus niet zo. Firefox zegt:
window.opener has no properties
Hoe moet ik vanuit de i_img iframe, de img_url textfield de preview iframe op de hofdpagina aanspreken?

Verwijderd

Je moet dan parent of top gebruiken.

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

window.parent.child

Going for adventure, lots of sun and a convertible! | GMT-8


Verwijderd

Topicstarter
Bedankt voor de antwoorden, maar:
window.parent.document.getElementById("img_url") has no properties
window.top.document.getElementById("img_url") has no properties
window.parent.child.getElementById("img_url") has no properties
:?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
je vergeet het frame ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Volgens mij niet, want img_url is een textinput op de hoofdpagina. img_url staat niet in een apart (i-)frame. Of begrijp ik je nu verkeerd?

Verwijderd

Topicstarter
Sorry, mijn fout :) Mijn script plaatst automatisch een integer achter elke textinput, en daar heb ik glad overheen gekeken. Gelukkig hebben we de FF DOM inspector nog :)
window.top.document.getElementById("img_url")
Dat werkt dus wel. Bedankt!

Nog een laatste vraag: het element
window.top.document.getElementById('preview');
bestaat in mijn script. Als ik dat alert, krijg ik keurig HTMLIFrameElement te zien. Maar dit werkt niet:
window.top.document.getElementById('preview').location.href = 'http://www.nu.nl';
> window.top.document.getElementById("preview").location has no properties
De HTML van de preview iframe is als volgt:
HTML:
1
<iframe id="preview" src="" style="width: 70px; height: 70px;"></iframe>

Hoe moet ik een inhoud (hier: de website nu.nl) aan het iframe toewijzen?

  • disjfa
  • Registratie: April 2001
  • Laatst online: 04-11 11:05

disjfa

be

Kan je niet gewoon een target met je naam van je iframe meegeven :?

HTML:
1
<a href="http://nu.nl" target="iframename">klik</a>


?

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Topicstarter
disjfa schreef op woensdag 07 maart 2007 @ 00:29:
Kan je niet gewoon een target met je naam van je iframe meegeven :?

HTML:
1
<a href="http://nu.nl" target="iframename">klik</a>


?
Waar zie jij een a-tag dan? Ik wil de inhoud zetten met javascript, niet via een anchor...

Verwijderd

Topicstarter
* kick :) *

(Zie 3 posts hierboven) Hoe kan het dat
window.top.document.getElementById('preview');
wel bestaat, maar dat
window.top.document.getElementById("preview").location
geen properties heeft?
Pagina: 1