/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Et popup vindue altid i focus
Fra : Michael Foged


Dato : 20-10-04 10:51

Jeg har et popupvindue, der bliver åbner med en beskrivelse, når der
klikkes på et anchor. Men nu er der altså 200 anchors, hver med deres
beskrivelse. Så jeg vil gerne have det sådan, at dette popup vindue
altid har focus, dvs man skal bare kunne klikke på et nyt anchor på
hovedsiden, og få serveret den tilhørende beskrivelse i popup, der har
focus.

Jeg har efter nogen googling, kommet frem til at jeg skal skrive flg i
popup'ens <body> tag:
<body onBlur="self.focus();">

Dette giver følgende effekt:
Når jeg klikker og der ikke er en popup, åbnes der korrekt en popup der
har focus.
Når jeg klikker anden gang, kommer der korrekt en ny beskrivelse i
popup'en der stadig har focus.
Når jeg klikker 3dje gang får popup'en det korrekte indhold, men mister
focus.

Dette er funktionen der åbner vinduet:

<script type="text/JavaScript">
<!--
function popup(vari){
   window.open('tracklist.php?boots_id='+vari,'newwindow',
config='height=400,width=700,toolbar=no,menubar=no,scrollbars=yes,
resizable=yes,location=no,directories=no,status=no')
}
-->
</script>

Jeg har desværre pt, ingen mulighed for at ligge det online, så jeg
håber at min beskrivelse er god nok til at give mening.

Håber der er en der har de vise sten

--
mvh
Michael Foged

 
 
Michael Foged (20-10-2004)
Kommentar
Fra : Michael Foged


Dato : 20-10-04 11:28

Lige et tillægs?

validatoren siger at onBlur="self.focus()" ikke er valid, når jeg prøver
at validere xhtml1.0 Strict. Er der nogen vej rundt om det?

--
mvh
Michael Foged

Jens Gyldenkærne Cla~ (20-10-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-10-04 11:37

Michael Foged skrev:

> validatoren siger at onBlur="self.focus()" ikke er valid, når jeg prøver
> at validere xhtml1.0 Strict. Er der nogen vej rundt om det?

Ja - husk at såvel elementer som parametre i xhtml skrives med småt:
onblur="self.focus()"

(indholdet i en parameter kan selvfølgelig godt have store bogstaver -
fx <h1 title="Hejsa">)

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Michael Foged (20-10-2004)
Kommentar
Fra : Michael Foged


Dato : 20-10-04 11:43

On Wed, 20 Oct 2004 12:37:09 +0200, Jens Gyldenkærne Clausen wrote:

> Michael Foged skrev:
>
>> validatoren siger at onBlur="self.focus()" ikke er valid, når jeg prøver
>> at validere xhtml1.0 Strict. Er der nogen vej rundt om det?
>
> Ja - husk at såvel elementer som parametre i xhtml skrives med småt:
> onblur="self.focus()"
>
> (indholdet i en parameter kan selvfølgelig godt have store bogstaver -
> fx <h1 title="Hejsa">)

Ups, jeg glemte at skrive at jeg havde prøvet onblur, det giver også
valideringsfejl.

Line 37, column 13: there is no attribute "onblur"
<body onblur="self.focus();">

--
mvh
Michael Foged

Jens Gyldenkærne Cla~ (20-10-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-10-04 12:26

Michael Foged skrev:

> Line 37, column 13: there is no attribute "onblur"
> <body onblur="self.focus();">

Ah - det er fordi onblur-hændelsen kun er gyldig på formelementer.

Har du prøvet med onload i stedet. Din nuværende kode forsøger - så vidt
jeg kan se - at holde vinduet øverst hele tiden. Det kan være ret
irriterende. Hvis du lægger en focus på onload, bliver vinduet lagt
øverst hver gang en side hentes i det - er det ikke godt nok?

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Michael Foged (20-10-2004)
Kommentar
Fra : Michael Foged


Dato : 20-10-04 13:16

On Wed, 20 Oct 2004 13:26:06 +0200, Jens Gyldenkærne Clausen wrote:

> Michael Foged skrev:
>
>> Line 37, column 13: there is no attribute "onblur"
>> <body onblur="self.focus();">
>
> Ah - det er fordi onblur-hændelsen kun er gyldig på formelementer.

Man skal ikke stole på alt man læser på nettet:(

> at holde vinduet øverst hele tiden. Det kan være ret
> irriterende.

Og var ikke meningen.

> Hvis du lægger en focus på onload, bliver vinduet lagt
> øverst hver gang en side hentes i det - er det ikke godt nok?

Har nu prøvet med onload og det virker perfekt.

Tak for hjælpen.

--
mvh
Michael Foged

kim isaksen (20-10-2004)
Kommentar
Fra : kim isaksen


Dato : 20-10-04 23:22

Michael Foged wrote:
> Jeg har et popupvindue, der bliver åbner med en beskrivelse, når der
> klikkes på et anchor. Men nu er der altså 200 anchors, hver med deres
> beskrivelse. Så jeg vil gerne have det sådan, at dette popup vindue
> altid har focus, dvs man skal bare kunne klikke på et nyt anchor på
> hovedsiden, og få serveret den tilhørende beskrivelse i popup, der har
> focus.

Hvis det altid skal have focus og focus skal holdes skal du bruge et
modal vindue .. (IE only såvidt jeg ved. ??). Dette er godt til
intranets m.m. hvor du vil sikre at bruger ikke bare ignorerer dialogen.
Eller hvis du vil lave en mere avanceret selectbox til at indhente
form data.

<url :
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/dhtml_reference_entry.asp
>


Ellers skal du bare have focus ved load ??
<body onload='window.focus()'>

Alternativt skal du bare bruge et div layer til dine info. Så er du ude
over at popup blockers stopper det. altså et
<div style='display:none' id='info_1281'>info info info</div>
<a href='#'
onclick="document.getElementById('info_1281').style.display='block'">dit
anchor her</a>

ja ja. Der er jo muligheder nok :)

mvh Kim Isaksen

Michael Foged (21-10-2004)
Kommentar
Fra : Michael Foged


Dato : 21-10-04 07:09

On Thu, 21 Oct 2004 00:22:19 +0200, kim isaksen wrote:


> <url :
> http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/dhtml_reference_entry.asp
> >

tak for glimrende link.


> Ellers skal du bare have focus ved load ??
> <body onload='window.focus()'>

Det var egentligt den jeg ledte efter, men du kommer selv med en endu
bedre løsning senere.

> Alternativt skal du bare bruge et div layer til dine info.

Tak for den ide! (og løsningsmodellen)


> ja ja. Der er jo muligheder nok :)

jep, det er bare med at se skoven for bare træer.

--
mvh
Michael Foged

Michael Foged (21-10-2004)
Kommentar
Fra : Michael Foged


Dato : 21-10-04 20:45

On Thu, 21 Oct 2004 08:08:58 +0200, Michael Foged wrote:

> On Thu, 21 Oct 2004 00:22:19 +0200, kim isaksen wrote:
>
>> Alternativt skal du bare bruge et div layer til dine info.
>
> Tak for den ide! (og løsningsmodellen)

den dur dog ikke da det popup vindue jeg har lavet, laver et database
opslag, der er afhængigt af hvilket anchor der bliver klikket på. Jeg
kan ikke forsvare at downloade alle data på en gang.

--
mvh
Michael Foged

kim isaksen (22-10-2004)
Kommentar
Fra : kim isaksen


Dato : 22-10-04 16:59

Michael Foged wrote:
> On Thu, 21 Oct 2004 08:08:58 +0200, Michael Foged wrote:
>
>
>>On Thu, 21 Oct 2004 00:22:19 +0200, kim isaksen wrote:
>>
>>
>>>Alternativt skal du bare bruge et div layer til dine info.
>>
>>Tak for den ide! (og løsningsmodellen)
>
>
> den dur dog ikke da det popup vindue jeg har lavet, laver et database
> opslag, der er afhængigt af hvilket anchor der bliver klikket på. Jeg
> kan ikke forsvare at downloade alle data på en gang.
>
Igen - hvis du vil - er der også en alternativ løsning til det..

1. lav opslagene i en iframe, returne værdien til dit layer. (lidt et
hack, men mere cross browser end nummer 2)

2. I IE findes der er objekt der hedder XMLHTTP..!

path = "/update.php?qs="+ DINE KLIK DATA
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   xmlhttp.Open("POST",path,false);
   xmlhttp.Send();
   tmp = xmlhttp.responseText;
   if (tmp!="") {
    myHiddenLayer.innerHTML = tmp
   }

Bare en ide !!

i update.php fanger du så qs som en normal query string.
du echo'er bare return value som så bliver fanget af 'xmlhttp.responseText'

Det spiller max i intranet, hvor brugeren er interface låst. Men på
internettet fanger man sig hurtigt nogen fjender :)

mvh Kim Isaksen

Michael Foged (23-10-2004)
Kommentar
Fra : Michael Foged


Dato : 23-10-04 12:45

On Fri, 22 Oct 2004 17:59:07 +0200, kim isaksen wrote:

> 1. lav opslagene i en iframe, returne værdien til dit layer. (lidt et
> hack, men mere cross browser end nummer 2)

Den tror jeg jeg vil prøve at lege lidt med.

> 2. I IE findes der er objekt der hedder XMLHTTP..!

<snip>

> Det spiller max i intranet, hvor brugeren er interface låst. Men på
> internettet fanger man sig hurtigt nogen fjender :)

Tjah når jeg kigger i min webstatistik siger den 60% IE og 40% andet, så
jeg tror ikke lige det er min model.

Mange tak for input

--
mvh
Michael Foged

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste