Avatar billede hnteknik Novice
26. oktober 2000 - 13:30 Der er 8 kommentarer og
1 løsning

Window.open() med autosize afhængigt af jpg billedets størrelse ?

Jeg er i gang med at lave et billedkatalog til en Kunstforenings årlige generalforsamling. Da de ikke har mulighed for databaseadgang og/eller ASP må jeg håndbrodere noget til dem:

En tabel med Titel, kunstner, størrelse etc samt en Thumbnail af kunststykket. Ved at klikke på jpg\'en åbnes et separat vindue med kunststykket i en mere sebar version. Da kunststykker er alt fra tæpper, vaser, krukker, fjerduske og malerier er jpgs af forskellig størrelse.

jeg vil gerne have åbnet et vindue, der passer til størrelsen af jpg\'en eller med en fast html side, der får overført, hvilken jpg, den skal vise.
(nemt nok i ASP).

Jeg kunne selvfølge hårdkode X,Y størrelsen ind men der er 130 artifacts denne gang og hvad med næste gang ?

Er der en programmerbar måde i Javascript/HTMl der -alternativ:

1. åbne et vindue dynamisk efter jpgen størrelse
2. åbne en htmlside (i vindue) hvor denne får overført, hvilket jpg, den    skal indlæse.

Henrik
26. oktober 2000 - 13:41 #1
Der er et OK kort lille script til netop dit formål her:
http://javascript.internet.com/page-details/image-sized-window.html
Avatar billede hnteknik Novice
26. oktober 2000 - 14:04 #2
Tak def - det var hurtigt men ikke hele vejen.

Resize er baseret på en kendt og indlejret jpg størrelse.
Hvis dette her skal virke, så skal jeg have overført en ref. med jpg navnet.

Jeg må løbe nu og vender tilbage i morgen.

Henrik
Avatar billede el_gnu Nybegynder
26. oktober 2000 - 14:25 #3
hvad med at lave ekstern scriptfil med billednavne og størrelser.
Eks.

---------- picStr.js -------------
var pics = new Array(
  new Array(\'pic1.jpg\', 120, 130),
  new Array(\'pic2.jpg\', 130, 120),
  // osv.
);

function getPicStr(navn) {
  for (i = 0; i<pics.length; i++) {
      if (pics[i][0] == navn)
        return pics[i];
  }
}


i dit HTML dokument skriver du så bare

<script language=\"JavaScript\" src=\"picStr.js\"></script>

og når du skal bruge størrelsen på et billede så kalder du getPicStr() med navnet på billedet.

Eks.

picData = getPicStr(\'pic1.jpg\');
bredde = picData[1];
hoejde = picData[2];
myWin = window.open(picData[0], \'myWin\', \'width=\' + bredde + \' height=\' + hoejde);

Håber det kan bruges

(-: el Gnu
Avatar billede el_gnu Nybegynder
26. oktober 2000 - 14:27 #4
PS: der skal jo nok lægges noget til bredden og højden så det passer med kanternes tykkelse
26. oktober 2000 - 15:34 #5
Her er sourcen til dit popup vindue

<source til popup start>
<HEAD>
<SCRIPT LANGUAGE=\"JavaScript\">
<!-- Begin
function hest() {
var strFileName = location.search.substring(1, location.search.length)
CurImage = new Image();
CurImage.src = strFileName

window.resizeTo(500, 500);
width = 500 - (document.body.clientWidth -  CurImage.width);
height = 501 - (document.body.clientHeight -  CurImage.height);

window.resizeTo(width, height);
trans.src = strFileName
}
//  End -->
</script>
</HEAD>

<BODY onload=\"hest();\" marginheight=\"0\" marginwidth=\"0\" topmargin=\"0\" leftmargin=\"0\" rightmargin=\"0\" bottommargin=\"0\">
<img src=\"hej.gif\" name=\"trans\" alt=\"Jeg skal være her!!!!\"><br>
</body>
</html>
</source til popup end>



Her er linket til popup´en
<a href=\"pic_popup.html?hesten_har_arme.gif\" target=\"_blank\">Open Image Window</a>
26. oktober 2000 - 15:36 #6
Vi skrev det lidt om og nu er vi da ud over at lægge det hele i en \"ekstern scriptfil med billednavne og størrelser\" man kan blot håndbrodere links til billederne

Prøv det!!;-)
/def
Avatar billede hnteknik Novice
27. oktober 2000 - 13:25 #7
Tak (-: el Gnu , men
Avatar billede hnteknik Novice
27. oktober 2000 - 13:32 #8
Tak (-: el Gnu , men din array giver det samme arbejde ( eller mere) end hvis jeg havde brug den direkte metode:

<SCRIPT LANGUAGE=\"JavaScript\">
<!--
function PopUp(url, width, height) {
  var Win = window.open(url,\"displayWindow\",\'width=\' + width +
  \',height=\' + height + \',resizable=0,scrollbars=no,menubar=no\' );
  }
  //-->
  </SCRIPT>

<a href=\"java script:PopUp(\'Kunst.jpg\',300,400)\">Januars køb</a>


def - tak for løsningen. Du er tæt på. Det virker som vist ikke i NS og menubars etc skal lige væk - det klarer vi med det for oven. NS problemet kan nok løses med Anvisningerne i dit link.

Tak Igen Henrik
Avatar billede hnteknik Novice
27. oktober 2000 - 15:14 #9
Her er så min løsning - god weekend til alle - Henrik
Width og Height er strengt taget ikke nødvendig, men alligevel.

\'--------startside
<html>
<SCRIPT LANGUAGE=\"JavaScript\">
<!--
function PopUp(url, width, height)
{
var Win = window.open(\"popupjpg3.html?\"+url,\"Kunstforening\",\'width=\' + width + \',height=\' + height + \',resizable=yes,scrollbars=no,menubar=no\' );
}
//-->
</SCRIPT>

<body>
  <a href=\"java script:PopUp(\'NotesIcon.GIF\',100,100)\">Januars køb</a>
</body>
</html>

\'----popup window
<html>
<HEAD>
<SCRIPT LANGUAGE=\"JavaScript\">
<!-- Begin
var isNav4, isIE4;
if (parseInt(navigator.appVersion.charAt(0)) >= 4)
{
isNav4 = (navigator.appName == \"Netscape\") ? 1 : 0;
isIE4 = (navigator.appName.indexOf(\"Microsoft\") != -1) ? 1 : 0;
}



function PopPic()
{
var strFileName = location.search.substring(1, location.search.length)
CurImage = new Image();
CurImage.src = strFileName

if (isIE4)
  {
  window.resizeTo(500, 500);
  width = 500 - (document.body.clientWidth -  CurImage.width);
  height = 501 - (document.body.clientHeight -  CurImage.height);
  window.resizeTo(width, height);
}
if (isNav4)
  {
  window.innerWidth = CurImage.width;
  window.innerHeight = CurImage.height;
  }
trans.src = strFileName
}
//  End -->
</script>
</HEAD>

<BODY onload=\"PopPic();\" marginheight=\"0\" marginwidth=\"0\" topmargin=\"0\" leftmargin=\"0\" rightmargin=\"0\" bottommargin=\"0\">
<img src=\"NotesIcon2.GIF\" name=\"trans\" alt=\"Jeg skal være her!!!!\"><br>
</body>
</html>
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