[Javascript] iframe onselect werkt niet?

Pagina: 1
Acties:

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Ik ben bezig met een WYSIWYG editor voor Internet Explorer. De tekst die ge-edit moet worden wordt geladen in een iframe:
HTML:
1
<iframe name="idEdit" frameborder="1" width="100%" height="200"></iframe>

Nu wil ik een event opstarten elke keer als iemand in het iframe klikt. Ik heb al verschillende dingen geprobeerd:
HTML:
1
2
3
idEdit.document.onselect = alert('hoi!');
idedit.document.onmousedown = alert('hoi!');
...etc

Maar niets werkt. Het volgende haalt ook niets uit:
HTML:
1
2
3
4
5
6
7
8
9
<iframe name="idEdit" frameborder="1" width="100%" height="200"
 onselect="alert('hoi!');"></iframe>

of

<iframe name="idEdit" frameborder="1" width="100%" height="200" 
onfocus="alert('hoi!');"></iframe>

etc...

Wat doe ik verkeerd?!

[ Voor 20% gewijzigd door Reveller op 30-04-2004 15:57 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Verwijderd

In een iframe zit een apart document. als je dus op het iframe klikt klik je eigenlijk in het document wat in het iframe zit. en niet meer op het hoofd document waar de iframe is gedefineerd.

een functie in het document binnen het iframe als

document.onclick = alert('hoi');
of
docuemtn.onfocus = alert('hoi');
zal denk ik wel werken.

iets in de richting van:

document.onclick = parent.[functienaam]; zal ook werken.

suc6 ermee

Verwijderd

code:
1
2
3
window.frames["idEdit"].document.onmousedown = function (e) {
  alert('you clicked me!');
}

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
@henkerik -- ik snap niet precies wat je bedoelt, want je code geeft geen resultaat. Ik kijg geen voudmelding, maar verder doet hij ook niets...

@tgf_78 -- ook jouw code heeft geen resultaat. Je uitleg over apart document heeft me wel geholpen -> als ik op <body onload> alvast iets in het iframe wil zetten, werkt het volgende perfect:
HTML:
1
idEdit.document.write('kaas');

maar hiermee staat het originele probleem nog open...

[ Voor 57% gewijzigd door Reveller op 30-04-2004 18:58 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Verwijderd

Ik heb even een voorbeeldje gemaakt hoop dat het zo duidelijk wordt.

hoofd document
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
<head>
    <title>main</title>
</head>
<script>

function test123()
{
    alert('koe');
}

</script>

<body>
    bla bla bla bla bla<br>
    <iframe src="frame.html"></iframe>
    <br>bla bla bla bla
</body>
</html>

frame document
code:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
    <title>frame</title>
</head>
<script>
    document.onclick = parent.test123;
</script>

<body>
    koe doet moe
</body>
</html>

suc6

[ Voor 23% gewijzigd door Verwijderd op 30-04-2004 21:14 ]