Verhuisd van 'programming' naar hier. Mijn excuses
Ik zal maar beginnen met zeggen dat ik een totale noob ben wat javascript betreft. Ik probeer momenteel twee scriptjes met elkaar te verzoenen, maar dit loopt niet van een leien dakje. Het uiteindelijke script moet dienen om afbeeldingen in een popupwindow te laten verschijnen zonder voor elke pagina een apart htm bestand te maken. Bovendien moet de grootte van het venster zich automatisch aanpassen aan de grootte van de afbeelding.
Het gaat om volgende twee scriptjes:
Script 1: centreren van een popupwindow.
Script 2: popup image waarbij de popup zich aanpast aan de grootte van de afbeelding zonder witte randen rond de afbeelding over te houden.
Resultaat: Hierin zit een fout, maar na enkele uren zoeken en proberen heb ik ze nog steeds niet gevonden. (het zou ook kunnen dat het volledige script fout zit, want zoals ik al eerder zei: ik ben nog volledige noob wat javascript betreft.
Ik heb dus zitten proberen en dit lijkt mij alvast een logische opbouw van de code.
Ik zal maar beginnen met zeggen dat ik een totale noob ben wat javascript betreft. Ik probeer momenteel twee scriptjes met elkaar te verzoenen, maar dit loopt niet van een leien dakje. Het uiteindelijke script moet dienen om afbeeldingen in een popupwindow te laten verschijnen zonder voor elke pagina een apart htm bestand te maken. Bovendien moet de grootte van het venster zich automatisch aanpassen aan de grootte van de afbeelding.
Het gaat om volgende twee scriptjes:
Script 1: centreren van een popupwindow.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| /*
Auto center window script- Eric King (http://redrival.com/eak/index.shtml)
Permission granted to Dynamic Drive to feature script in archive
For full source, usage terms, and 100's more DHTML scripts, visit http://dynamicdrive.com
*/
var win = null;
function NewWindow(mypage,myname,w,h,scroll){
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
settings =
'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable'
win = window.open(mypage,myname,settings)
} |
Script 2: popup image waarbij de popup zich aanpast aan de grootte van de afbeelding zonder witte randen rond de afbeelding over te houden.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| // Script Source: CodeLifter.com
// Copyright 2003
// Do not remove this notice.
// SETUPS:
// ===============================
// Set the horizontal and vertical position for the popup
PositionX = 100;
PositionY = 100;
// Set these value approximately 20 pixels greater than the
// size of the largest image to be used (needed for Netscape)
defaultWidth = 1044;
defaultHeight = 606;
// Set autoclose true to have the window close automatically
// Set autoclose false to allow multiple popup windows
var AutoClose = true;
// Do not edit below this line...
// ================================
if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}
var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;
function popImage(imageURL,imageTitle){
if (isNN){imgWin=window.open('about:blank','',optNN);}
if (isIE){imgWin=window.open('about:blank','',optIE);}
with (imgWin.document){
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
writeln('width=100-(document.body.clientWidth-document.images[0].width);');
writeln('height=100-(document.body.clientHeight-document.images[0].height);');
writeln('window.resizeTo(width,height);}');writeln('if (isNN){');
writeln('window.innerWidth=document.images["George"].width;');writeln('window.innerHeight=document.images["George"].height;}}');
writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>');
if (!AutoClose) writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
else writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
writeln('<img name="George" src='+imageURL+' style="display:block"></body></html>');
close();
}} |
Resultaat: Hierin zit een fout, maar na enkele uren zoeken en proberen heb ik ze nog steeds niet gevonden. (het zou ook kunnen dat het volledige script fout zit, want zoals ik al eerder zei: ik ben nog volledige noob wat javascript betreft.
Ik heb dus zitten proberen en dit lijkt mij alvast een logische opbouw van de code.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| // Script Source: CodeLifter.com
// Copyright 2003
// Do not remove this notice.
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
defaultWidth = 1044;
defaultHeight = 606;
var AutoClose = true;
if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}
var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+';
var optIE='scrollbars=no,width=150,height=100;
var settings='top='+TopPosition+',left='+LeftPosition+';
function popImage(imageURL,imageTitle){
if (isNN){imgWin=window.open('about:blank','',optNN,settings);}
if (isIE){imgWin=window.open('about:blank','',optIE,settings);}
with (imgWin.document){
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;
}');
writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
writeln('width=100-(document.body.clientWidth-document.images[0].width);');
writeln('height=100-(document.body.clientHeight-document.images[0].height);');
writeln('window.resizeTo(width,height);}');writeln('if (isNN){');
writeln('window.innerWidth=document.images["George"].width;');writeln('window.innerHeight=document.images["George"].
height;}}');
writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>');
if (!AutoClose) writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
else writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()"
onblur="self.close()">');
writeln('<img name="George" src='+imageURL+' style="display:block"></body></html>');
close();
}} |