27. marts 2003 - 01:29
#1
<html>
<head>
<script type="text/javascript">
function newWindow(mypage,myname,w,h,features) {
if(screen.width) {
if(w > 500)
w = 500;
var winl = (screen.width-w)/2;
var wint = (screen.height-h)/2;
}
else {
winl = 0;
wint = 0;
}
if (winl < 0) winl = 0;
if (wint < 0) wint = 0;
var settings = 'height=' + h + ',';
settings += 'width=' + w + ',';
settings += 'top=' + wint + ',';
settings += 'left=' + winl + ',';
settings += features;
win = window.open(mypage,myname,settings);
win.window.focus();
}
</script>
</head>
<body>
<a href="#" onClick="newWindow('default.htm','popup',9999,400,'toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=no'); return false;">klik</a>
</body>
</html>
27. marts 2003 - 15:41
#3
Desværre fortæller du ikke hvor meget du i forvejen kender til HTML og JavaScript, så hvis min forklaring her ikke giver nogen mening for dig, så sig endelig til. Jeg går ud fra at du arbejder videre på en eksisterende side, så du burde kunne se koderne <html>, <head>, </head>, <body>, </body> og </html> på din side. Kopier derfor dette:
<script type="text/javascript">
function newWindow(mypage,myname,w,h,features) {
if(screen.width) {
if(w > 500)
w = 500;
var winl = (screen.width-w)/2;
var wint = (screen.height-h)/2;
}
else {
winl = 0;
wint = 0;
}
if (winl < 0) winl = 0;
if (wint < 0) wint = 0;
var settings = 'height=' + h + ',';
settings += 'width=' + w + ',';
settings += 'top=' + wint + ',';
settings += 'left=' + winl + ',';
settings += features;
win = window.open(mypage,myname,settings);
win.window.focus();
}
.. ind på din side, så det står et sted mellem <head> og </head>. Dermed har du på din side indsat en helt generel funktion, hvis funktion blot er at åbne hvilken som helst hjemmeside i et nyt vindue (og den undersøger også om den angivne bredde er større end 500 pixels og hvis det er tilfældet sættes bredden til 500 pixels). Denne kode skal du altså ikke ændre på for at få det til at virke efter dine behov.
Kopier dernæst dette:
<a href="#" onClick="newWindow('default.htm','popup',9999,400,'toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=no'); return false;">klik</a>
.. ind på din side, så det står mellem <body> og </body>. Det er et link som vi kender det fra HTML, men der benyttes JavaScript til at kalde funktionen inden for <head> og </head> med diverse argumenter som du selv kan angive for at få vinduet til at se ud som du ønsker.
Som du kan se kaldes funktionen newWindow(); fra body-sektionen via et normalt link. Siden default.htm åbnes med vinduesnavnet popup (dette har ikke noget at gøre med <title>Titel her</title>). Bredden er 9999 pixels (dette bliver så lavet om til 500 pixels fordi 9999 pixels > 500 pixels), højden er 400 pixels og i popupvinduet vises diverse værktøjslinjer, statusbar, scrollbars osv., men jeg har gjort så man ikke kan resize (justere) vinduets størrelse, for så ville man jo kunne gøre det større end 500 pixels.
Husk at hvis du indsætter flere vinduer:
<a href="#" onClick="newWindow('default.htm','popup',9999,400,'toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=no'); return false;">klik</a>
<a href="#" onClick="newWindow('default.htm','popup2',9999,400,'toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=no'); return false;">klik</a>
<a href="#" onClick="newWindow('default.htm','popup3',9999,400,'toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=no'); return false;">klik</a>
<a href="#" onClick="newWindow('default.htm','popup4',9999,400,'toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=no'); return false;">klik</a>
... skal du angive et nyt vinduesnavn til hvert vindue.
28. marts 2003 - 03:53
#8
Okay, i så fald vil det bedste nok være at skrive koden på en noget anden måde, så der ikke skal stå de samme ting flere gange:
<html>
<head>
<script type="text/JavaScript">
function newWindow(url, w, h) {
var winl = (screen.availWidth-w)/2;
var wint = (screen.availHeight-h)/2;
var u = new Date().getTime();
win=window.open(url,"popup"+u,"width="+w+",height="+h+",left="+winl+",top="+wint+",toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0");
win.focus();
}
</script>
</head>
<body>
<a href="#" onclick="newWindow('farver.html', 500, 400);return false;">Link 1</a><br>
<a href="#" onclick="newWindow('farver2.html', 500, 400);return false;">Link 2</a><br>
<a href="#" onclick="newWindow('farver3.html', 500, 400);return false;">Link 3</a><br>
<a href="#" onclick="newWindow('farver4.html', 500, 400);return false;">Link 4</a><br>
</body>
</html>
Nu skal du altså ikke længere give hvert vindue et unikt navn; det klares automatisk. Der er også sørget for at der på et centralt sted (i HEAD) defineres hvilke værktøjslinjer der vises på popup-vinduerne, så du ikke skal angive dette hver eneste gang du skriver linket til at åbne en side i et nyt popup-vindue.
:)
"Kan man forhøje pointantallet midt i forløbet?" >> Ja, jeg mener det er øverst ude til venstre (under Funktioner) du kan gøre det.