Avatar billede Slettet bruger
22. oktober 2007 - 12:34 Der er 16 kommentarer

Popup via select-menu

Hej - jeg vil gerne ha' en select-menu til at kalde en side (i popup) - altså noget i stil med:

<script>
function popUp(url,name,w,h){
    str="height="+h+",width="+w+",scrollbars=1,";
    if(parseInt(navigator.appVersion)>3)
        str+=",left="+(screen.width -w)/2+",top="+parseInt((screen.height -h)/4);
    win=window.open(url,name,str);
}
</script>


<select onChange="location.href = this.options[this.selectedIndex].value" name="save">
<option value="">Gem</option>
<option value="onClick="java script:popUp('side.asp?query=1','adding',500,330);">Kald side 1</option>
<option value="onClick="java script:popUp('side.asp?query=2','adding',500,330);">Kald side 3</option>
<option value="onClick="java script:popUp('side.asp?query=3','adding',500,330);">Kald side 2</option>
</select>

Men det er noget skrammel - så et el. andet der virker og jeg ville blive meget glad :-)
Avatar billede Slettet bruger
22. oktober 2007 - 12:47 #1
Jeg har fundet nedenstående, men den aktiverer Internet Explorers popup-blocker, og det er træls :-/

http://javascript.internet.com/navigation/menu-popup.html
Avatar billede w13 Novice
22. oktober 2007 - 14:33 #2
Ja, det vil popups generelt gøre, er jeg bange for :)
Avatar billede Slettet bruger
22. oktober 2007 - 14:45 #3
Ikke hvis det er en popup der åbnes, når man klikker på et alm. tekst-link. Det virker også fint hvis man bruger en knap (button) - men problemet kommer når man vil bruge en select-boks?! :-s
Avatar billede olebole Juniormester
22. oktober 2007 - 15:54 #4
<ole>

Ja, en select er jo ikke en knap eller et link. Derfor blokkeres en popup, præcis som det skal ske  :)
Derudover er koden til din select helt i skoven ... prøver du at lægge en event-handler i value-attributten, eller ...?

/mvh
</bole>
Avatar billede Slettet bruger
22. oktober 2007 - 17:08 #5
Det var for at illustrere hvad det er, jeg ønsker...
Avatar billede w13 Novice
22. oktober 2007 - 18:29 #6
Med din kode må det så være:
-----------------------------------------
<script>
function popUp(url,name,w,h){
    str="height="+h+",width="+w+",scrollbars=1,";
    if(parseInt(navigator.appVersion)>3)
        str+=",left="+(screen.width -w)/2+",top="+parseInt((screen.height -h)/4);
    win=window.open(url,name,str);
}
</script>


<select onchange="popUp('side.asp?query='+this.options[this.selectedIndex].value",'adding',500,330)" name="save">
<option value="">Gem</option>
<option value="1">Kald side 1</option>
<option value="2">Kald side 3</option>
<option value="2">Kald side 2</option>
</select>
-----------------------------
Men du har løst det selv?
Avatar billede Slettet bruger
22. oktober 2007 - 19:13 #7
@w13

Jah, men jeg synes ikke det virker?!
Avatar billede w13 Novice
22. oktober 2007 - 19:28 #8
Nej, jeg fik puttet et forkert tegn ind midt i:
-----------------------------------------
<script>
function popUp(url,name,w,h){
    str="height="+h+",width="+w+",scrollbars=1,";
    if(parseInt(navigator.appVersion)>3)
        str+=",left="+(screen.width -w)/2+",top="+parseInt((screen.height -h)/4);
    win=window.open(url,name,str);
}
</script>


<select onchange="popUp('side.asp?query='+this.options[this.selectedIndex].value,'adding',500,330)" name="save">
<option value="">Gem</option>
<option value="1">Kald side 1</option>
<option value="2">Kald side 3</option>
<option value="2">Kald side 2</option>
</select>
-----------------------------------------
Men ellers kan det hjælpe _enormt_ meget, hvis man ikke selv skal gætte fejl-meddelelsen/-typen. =)
Avatar billede olebole Juniormester
22. oktober 2007 - 19:42 #9
w13 >> Vil den snige sig udenom popup-blockers?
Avatar billede Slettet bruger
22. oktober 2007 - 19:47 #10
Det virker fint - men nej, den fanges af popup-blockeren :-/
Avatar billede Slettet bruger
22. oktober 2007 - 19:48 #11
^i internet explorer... Virker upåklageligt i firefox
Avatar billede w13 Novice
22. oktober 2007 - 19:52 #12
olebole>> Nej, det var bare ment som en rettelse af hans originale kode, der må siges at afvige noget fra w3c-standarden. :)
omalley>> Er bange for, du ikke kommer uden om popup-blockeren, når brugeren ikke klikker på link/knap. Hvis min udgave af din kode er bedre eller kortere end den, du har fundet, kan du jo bruge den, og så kan du bare tage pointene selv, da dit problem jo ikke blev løst.
Avatar billede olebole Juniormester
22. oktober 2007 - 22:32 #13
Det bedste, jeg kan komme på, er:

<script type="text/JavaScript">
function popUp(oBtn,sSelName,name,w,h) {
    var str = "height="+h+",width="+w+",scrollbars=1,left="+((screen.width -w)/2)+",top="+((screen.height -h)/4);
    var oSel = document.getElementsByName(sSelName)[0];
    if (oSel.value=="") return;
    var url = "side.asp?query=" + oSel.value;
    win = window.open(url,name,str);
    oSel.selectedIndex = 0;
    oBtn.style.display = "none";
}
function showBtn(sBtnID) {
    var oBtn = document.getElementById(sBtnID);
    oBtn.style.display = "inline";
}
</script>


<select onchange="showBtn('btnGo2')" name="save">
<option value="">Gem</option>
<option value="1">Kald side 1</option>
<option value="2">Kald side 3</option>
<option value="2">Kald side 2</option>
</select>
<button id="btnGo2" style="display:none" onclick="popUp(this,'save','adding',500,330)">Klik for at gemme</button>
Avatar billede olebole Juniormester
22. oktober 2007 - 22:34 #14
Njaahh ...:

function popUp(oBtn,sSelName,name,w,h) {
    var str = "height="+h+",width="+w+",scrollbars=1,left="+((screen.width -w)/2)+",top="+((screen.height -h)/4);
    var oSel = document.getElementsByName(sSelName)[0];
    oBtn.style.display = "none";
    if (oSel.value=="") return;
    var url = "side.asp?query=" + oSel.value;
    win = window.open(url,name,str);
    oSel.selectedIndex = 0;
}
Avatar billede olebole Juniormester
22. oktober 2007 - 22:36 #15
- og alle gode gange tre  :)

function popUp(oBtn,sSelName,name,w,h) {
    var str, url, oSel = document.getElementsByName(sSelName)[0];
    oBtn.style.display = "none";
    if (oSel.value=="") return;
    str = "height="+h+",width="+w+",scrollbars=1,left="+((screen.width -w)/2)+",top="+((screen.height -h)/4);
    url = "side.asp?query=" + oSel.value;
    win = window.open(url,name,str);
    oSel.selectedIndex = 0;
}
Avatar billede Slettet bruger
24. oktober 2007 - 10:26 #16
Hmm ja, hvis man nu accepterer, at der også er en knap - burde det så ikke virke?

Så kunne man vel tilmed kalde 2 forskellige adresser i stedet, altså i stil med:

<select name="save">
<option value="">Gem</option>
<option value="1">Kald URL 1</option>
<option value="2">Kald URL 2</option>
</select>
<input type="button" name="Submit" value="Submit">
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