Toon posts:

[js] uitlezen in welk element is geklikt

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb 3 tot 10 iframes op een pagina en als er in 1 van die frames wordt geklikt wordt er een functie aangeroepen. Die afhankelijk van het iframe een andere tekst moet binnen hallen.
Nou zou ik deze functie gewoon kunnen aanroepen met argumenten zoals
code:
1
mijnfunctie(test)


maar dit kan niet omdat die functie is gekoppeld aan een oncontextmenu event
zoals
code:
1
2
3
frame1.document.oncontextmenu=mijnfunctie
frame2.document.oncontextmenu=mijnfunctie
enz....

dus nou was mijn vraag kan ik op een of andere manier kijken van uit welk frame die functie is aangeroepen. Of dat ik het toch op een of andere manier kan meegeven of dat ik aan de hand van de muispositie kan kijken in welk frame er was geklikt.

Verwijderd

kan je niet een parameter meegeven?

function mijnfunctie(int framenummer)
{
}

frame1.document.oncontextmenu=mijnfunctie(0); frame2.document.oncontextmenu=mijnfunctie(1); enz....

  • Marv
  • Registratie: Oktober 2000
  • Laatst online: 11-06 06:52
Je kunt bij javascript "this" meegeven als parameter... kijk eens of je daar wat mee kunt.

"Everything I've ever done or said is the complete opposite of what I've wanted" -- George


Verwijderd

Topicstarter
Dat is juist het probleem als ik dit doe
code:
1
2
3
test1.document.oncontextmenu=showmenu(this);
test2.document.oncontextmenu=showmenu(this);
enz..

dan wordt de functie gelijk bij het laden gerund, dit komt door de () dus die moet ik weg laten
en dan moet ik het zo aanroepen:
code:
1
2
3
test1.document.oncontextmenu=showmenu;
test2.document.oncontextmenu=showmenu;
enz..

maar dan kan ik dus niet meegeven of er nou in iframe test1 of in iframe test2 enz is geklikt.

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

Bosmonster

*zucht*

Nee, je koppelt de functie aan het object.. in je functie kun je het object opvragen met this.

Parameters gaan niet werken. Maar je weet dus wel degelijk in welk iframe geklikt is.

Verwijderd

Topicstarter
Bosmonster zoals jij zegt zal het als volgt moeten werken:
de functie
code:
1
2
3
function showmenu(){
       document.write("id="+this.id)
}


en dan de aanroep
code:
1
2
3
test1.document.oncontextmenu=showmenu;
test2.document.oncontextmenu=showmenu;
enz..


Met de functie zou ik nu test1 of test2 enz op het scherm moeten krijgen maar ik krijg undifined. Wat doe ik dan nu fout of heb ik je verkeerd begrepen

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

Bosmonster

*zucht*

heeft je document een id dan? :)

wat zou moeten werken bijvoorbeeld is:

this.body.id bijvoorbeeld, als je in de body tag van dat document ff een id meegeeft.

of ff heel ruig:

this.write("test");

  • André
  • Registratie: Maart 2002
  • Laatst online: 28-08 14:49

André

Analytics dude

of:
code:
1
2
3
4
function showmenu()
{
  alert(event.srcElement)
}

Verwijderd

Topicstarter
Ja het werkt maar ik wil de id van het iframe achterhalen en nu krijg ik met this natuurlijk het document ipv het iframe?
Maar ik moet de iframe id hebben om zo de muispositie te kunnen achterhalen
is dat mogelijk?

thnx voor de hulp ik heb het opgelost door de iframe een naam te geven en dan this.parentWindow.name op te vragen, want this.parentWindow.id werkt niet

[ Voor 0% gewijzigd door Verwijderd op 31-10-2002 16:44 . Reden: oplossing gevonden ]

Pagina: 1