Avatar billede sluppermanden Nybegynder
12. marts 2008 - 12:08 Der er 11 kommentarer og
2 løsninger

Finde position på IFRAME i forhold til browser

Hej,

Jeg har en side hvor jeg skal finde ud af om der er klikket inde på side.

Jeg har brugt denne kode.

if( window.event.clientX < 0) || (window.event.clientY < 0  ){
    alert('You clicked the window')
  }

Mit problem er at dette også skal fungere når siden er i en IFRAME.

Der skal nemlig også gives besked hvis man har tykket undenfor IFRAMEN.
Derfor skal jeg bruge positionen på iframen til at erstatte 0'et.
Avatar billede sluppermanden Nybegynder
12. marts 2008 - 12:09 #1
Alerten hedder selvfølgelig alert('You clicked OUTSIDE the window')
Avatar billede w13 Novice
12. marts 2008 - 14:55 #2
document.getElementById("iframe-id").offsetLeft
document.getElementById("iframe-id").offsetTop

burde kunne gøre det.
Avatar billede sluppermanden Nybegynder
12. marts 2008 - 15:04 #3
Du skal tænke på at jeg stå inden i IFramen.
Avatar billede olebole Juniormester
12. marts 2008 - 18:41 #4
<ole>

parent.document.getElementById("iframe-id").offsetLeft
parent.document.getElementById("iframe-id").offsetTop

/mvh
</bole>
Avatar billede olebole Juniormester
12. marts 2008 - 18:44 #5
- men det er vist noget rod, du har gang i. Hvis koden window.event.clientX ligger i iframe'en returnerer den ikke noget, hvis der klikkes udenfor iframe'en.

Hvad er det præcist, du vil lave?
Avatar billede sluppermanden Nybegynder
12. marts 2008 - 21:40 #6
Jeg vil gerne give brugeren besked om at han er på vej til at navigere væk siden og hans buffer dermed bliver slettet.

Så længe brugeren klikker på siden er det ok.
Så snart han klikker uden for siden skal han have en advarsel om at hans buffer bliver slettet.
Det kan være han trykker på et link i frameworket eller han trykker på X i browser det er samme besked han skal have.

dette har jeg gjort ved at sætte
window.onbeforeunload = checkClose ;
function checkClose(){
if( window.event.clientX < 0) || (window.event.clientY < 0  ){
    alert('You clicked the window')
  }
}
Avatar billede olebole Juniormester
13. marts 2008 - 00:16 #7
Jamen, du skal jo aftaste event'en ude i hoveddokumentet. Et klik i hovedokumentet fyrer ikke en event af i iframe-dokumentet
Avatar billede sluppermanden Nybegynder
13. marts 2008 - 13:40 #8
Jeg kan ikke får offsetLeft og Top til at virke.
Så i stedet fandt jeg størrelsen på den invendige frame og trak den fra størrelsen af browseren.

Så hvis X og Y ikke ligger inden for intervalet betrakte clicket som uden for.

clientX og Y returner koordinator i forhold til deres eget vindue.
Hvis man skal have koordinator i forhold til browser skal man bruge screenX og Y.

Jeg takker for jeres hjælp. I må ligge et svar da det hjalp mig med at komme videre.
Avatar billede w13 Novice
13. marts 2008 - 13:59 #9
=)
Avatar billede olebole Juniormester
13. marts 2008 - 16:13 #10
Okay  =)
Avatar billede w13 Novice
01. april 2008 - 12:35 #11
Lukketid?
Avatar billede sluppermanden Nybegynder
01. april 2008 - 13:18 #12
Jeps
Avatar billede w13 Novice
01. april 2008 - 13:26 #13
Takker =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester