webForumDet fria alternativet

Flera positionerade popup med autostorlek

JavaScript

3 svar · 277 visningar · startad av kilpin

Medlem sedan apr. 200084 inlägg
Frågan#1

Hej,
jag har något knivigt för alla JavaScript-gurus därute. Jag vill:
- autoladda (onLoad?) 16 stycken popupfönster när jag kommer in på en sida

- dessa skall få en automatisk storlek så att de anpassar sig till besökarens upplösning. T.ex. om besökaren sitter med 800x600 så skall varje popup bli 50x37 (dividerar upplösningen med 16)

- Varje popup kommer att innehålla en länk till en extern sida (t.ex. Aftonbladet.se, expressen.se, dn.se etc. Ej samma länk på i alla popuper alltså) och vid klick på någon av dessa 16 länkar så skall samtliga 16 popuper stängas och URL:en på länken skall laddas i huvudfönstret (det som autoladdade alla popuper).

Hmm...tror att jag fick med allting där. Någon som förstår vad jag menar och har en lösning på det?

Nu när jag tänker efter så drar jag mig till minnes att Levis hade en sådan här funktion en gång för länge sedan så det måste ju gå.

Tack på förhand.

Medlem sedan sep. 20021 655 inlägg
#2

Det låter som en fruktansvärd sida som ska öppna 16 st fönster så fort man går in där, men här har du en lösning:

På huvudsidan:

<script type="text/javascript">
var popups = new Array();
function openAllWindows(){
    var winWidth  = Math.floor(screen.width / 4);
    var winHeight = Math.floor(screen.height / 4);
    var toLoadUrls = ["popup01.html",
                      "popup02.html",
                      "popup03.html",
                      "popup04.html",
                      "popup05.html",
                      "popup06.html",
                      "popup07.html",
                      "popup08.html",
                      "popup09.html",
                      "popup10.html",
                      "popup11.html",
                      "popup12.html",
                      "popup13.html",
                      "popup14.html",
                      "popup15.html",
                      "popup16.html"];

    var topX  = 0;
    var leftX = 0;
    for(var i=0; i<16; i++){
        popups[i] = window.open(toLoadUrls[i], "win"+i, "width="+winWidth+",height="+winHeight+",left="+(winWidth*leftX)+",top="+(winHeight*topX));
        leftX++;
        if(leftX==4){
            leftX=0;
            topX++;
        }
    }
}

function closeAllWindows(newUrl){
    for(var i=0; i<16; i++){
        popups[i].close();
    }
    window.location = newUrl;
}
window.onload=openAllWindows;
</script>

I popup-fönsterna skriver du länkarna så här:

<a href="http://www.aftonbladet.se" onclick="window.opener.closeAllWindows(this.href); return false;">Aftonbladet</a><br />
<a href="http://www.expressen.se" onclick="window.opener.closeAllWindows(this.href); return false;">Expressen</a>
Medlem sedan apr. 200084 inlägg
#3

He he, kanske lite jobbigt med 16 pops men tanken ær inte att det skall vara anvændarvænligt. Det ska vara till ett projekt som kanske kan ræknas in som konst.
Det funkade i alla fall ,tack før hjælpen!
(Hmm, verkar ha fått norskt tangentbord, sorry før det)

Medlem sedan juni 20004 308 inlägg
#4

Ett tips till trådskaparen.

259 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)