Avatar billede boxer Praktikant
14. februar 2007 - 14:20 Der er 7 kommentarer og
1 løsning

Åbne et vindue i bestemt størrelse ved klik på et link.

Hej

Jeg vil muligvis gerne benytte mig af noget javascript på mit website.

Det jeg kunne tænke mig er, at åbne et nyt vindue ved klik på et link. Jeg skal kunne bestemme vinduets størrelse.

Det skal virke både hvis linket er et billede.jpg og hvis det er side2.html

Hvordan laves det så det virker, stort set alle steder?

MvH
Boxer
Avatar billede or.han Nybegynder
14. februar 2007 - 20:50 #1
Du kan gøre sådan her:

Ved alle de <a>'er som skal åbne et nyt vindue, laver du en class som er lig med popup:
<a href="http://eksperten.dk" class="popup">Link til EXP.dk</a>

Så laver du en .js-fil. Kald den hvad du vil. Der skal stå det her i den:
window.onload = popupLinks;

function popupLinks(){
    var links = document.getElementsByTagName("a");
    for (var i=0; i<links.length; i++) {
        var links_class = " "+links[i].className+" ";
        if(links_class.indexOf("popup") == -1) return;
        links[i]._index = i;
        links[i].onclick = function(){
            window.open(this.getAttribute("href"), "vindue"+this._index, "width=400, height=600");
            return false;
        };
    }
}

Så i din <head> laver du:
<script type="text/javascript" src="adresse-til-js-filen.js"></script>


Du kan ændre vinduets højde og bredde der i .js-filen hvor der står height og width. Jeg har ikke testet koden, så du siger bare hvis den ikke virker.
Avatar billede roenving Novice
15. februar 2007 - 11:07 #2
>>or.han

-- hvotrfor ikke bare:

...
    for (var i=0; i<links.length; i++) {
        if(links[i].className.indexOf("popup") == -1) return;
...
Avatar billede boxer Praktikant
15. februar 2007 - 13:34 #3
Hej
Jeg skal nok lige vende tilbage når jeg får det testet
Tak for indslag :o)
Avatar billede or.han Nybegynder
15. februar 2007 - 16:44 #4
>>roenving

Der skulle egentlig have stået:
if(links_class.indexOf(" popup ") == -1) return;

På din måde vil det jo også passe hvis en class hed "popupper" eller "supopup" fx. Bare ekstra sikkerhed...
Avatar billede boxer Praktikant
16. februar 2007 - 13:13 #5
Er vi enige i at js filen skal se sådan ud:

window.onload = popupLinks;

Smid gerne et svar begge 2. Det ser ud til at jeg alligevel ikke får tid til at teste foreløbig.
Jeg kan altid vende tilbage hvis jeg får problemer.

MvH
Boxer

function popupLinks(){
    var links = document.getElementsByTagName("a");
    for (var i=0; i<links.length; i++) {
        var links_class = " "+links[i].className+" ";
        if(links_class.indexOf(" popup ") == -1) return;
        links[i]._index = i;
        links[i].onclick = function(){
            window.open(this.getAttribute("href"), "vindue"+this._index, "width=400, height=600");
            return false;
        };
    }
}
Avatar billede or.han Nybegynder
16. februar 2007 - 16:30 #6
Point haster ikke. Men jeg ligger et svar, så du bare kan give points eller lade være, når du får testet.
Avatar billede or.han Nybegynder
16. februar 2007 - 16:31 #7
Og ja scriptet skal indeholde:

window.onload = popupLinks;

function popupLinks(){
    var links = document.getElementsByTagName("a");
    for (var i=0; i<links.length; i++) {
        var links_class = " "+links[i].className+" ";
        if(links_class.indexOf(" popup ") == -1) return;
        links[i]._index = i;
        links[i].onclick = function(){
            window.open(this.getAttribute("href"), "vindue"+this._index, "width=400, height=600");
            return false;
        };
    }
}
Avatar billede boxer Praktikant
19. februar 2007 - 11:55 #8
Tak for hjælpen :o)
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