/ Forside/ Teknologi / Udvikling / Java Scripts / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Hvorfor virker window.open(...); ikke ?
Fra : molokyle
Vist : 630 gange
100 point
Dato : 13-07-04 03:14

Her er en testside :

Kode
<html>
<head>
<title>Centered pop-up window</title>
<script language = javascript>
function image_open(pic)
{
var x_pic = new Image();
x_pic.src=pic;
var leftpos=(screen.width-x_pic.width)/2;
var toppos=(screen.height-x_pic.height)/2;
var HTML="<html><style>body{margin:0px 0px 0px 0px}</style><body onBlur='top.close()'><img src='"+pic+"' border='0' name='load_image' onLoad='window.resizeTo(document.load_image.width+10,document.load_image.height+30)'></body></html>";
popupImage=window.open("","_blank","left='+leftpos+',top='+toppos+',toolbar=no,scrollbars=no");
popupImage.document.open();
popupImage.document.write(HTML);
popupImage.document.close();
}

function test(pic)
{
var x_pic = new Image();
x_pic.src=pic;
var leftdist=screen.width/2;
var topdist=screen.height/2;
var leftpos=(screen.width-x_pic.width)/2;
var toppos=(screen.height-x_pic.height)/2;
document.write(
'Halv skærm bredde = '+leftdist+
'<br>Halv skærm højde = '+topdist+
'<br>Billed bredde = '+x_pic.width+
'<br>Billed højde = '+x_pic.height+
'<br>Indsætningspunkt x-koordinat = '+leftpos+
'<br>Indsætningspunkt y-koordinat = '+toppos);
}
</script>
</head>
<body>
<p>
<img src="BILLEDE.jpg" onClick="javascript:test('BILLEDE.jpg')">
<p>
<form>
<input type="button" value="pop-up" onclick="JavaScript:image_open('BILLEDE.jpg');">
</form>
</body>
</html>


Problemet er : window.open("","_blank","left='+leftpos+',top='+toppos+',toolbar=no,scrollbars=no");
Vinduet vil IKKE positionere sig efter parametrene : leftpos og toppos

Hvis man klikker på billedet, valideres værdierne af varablene som de skal, men klikker man på pop-up knappen vil billedet ikke centreres.

Hvad er der galt ?

</MOLOKYLE>

 
 
Kommentar
Fra : natmaden


Dato : 13-07-04 04:59

Hej molokyle
Kan ikke lige overskue din kode.
men tror du bruger lidt mange anførselstegn/mellemrum.
Gå til http://www.idgforlag.dk kik under bilag
find 'Start på javascript 1.5' download unzip kik på eksembel 12-5

Det tilørende hæfte til 79kr. er nu også rart at have.

Natmaden

Kommentar
Fra : natmaden


Dato : 13-07-04 05:45

fandt lige denne med popup billed lavet i php+javascript
http://www.solutions2all.dk/source_show.asp?id=1320

Kommentar
Fra : molokyle


Dato : 13-07-04 07:49

natmaden -> Jeg har skam prøvet næsten ALLE kombinationer ....uden resultat. Når jeg tester Javascripts slår jeg altid : Vis meddelelse om hver scriptfejl i mine internetindstillinger. Derfor er der ikke mulighed for at 'komme til' at udelade et tegn.

Her er 'lidt' af det jeg har prøvet :

1.) window.open("","_blank","left='+leftpos+',top='+toppos+',toolbar=no,scroll bars=no");
2.) window.open("","_blank","left=+leftpos+,top='+toppos+,toolbar=no,scroll bars=no");
3.) window.open("","_blank","left=leftpos,top=toppos,toolbar=no,scroll bars=no");
4.) window.open("","_blank","left='leftpos',top='toppos',toolbar=no,scroll bars=no");

5.) window.open('','_blank','left="+leftpos+",top="+toppos+",toolbar=no,scroll bars=no');
6.) window.open('','_blank','left=+leftpos+,top=+toppos+,toolbar=no,scroll bars=no');
7.) window.open('','_blank','left=leftpos,top=toppos,toolbar=no,scroll bars=no');
8.) window.open('','_blank','left="leftpos",top="toppos",toolbar=no,scroll bars=no');

Intet af ovenstående giver fejl ..og intet virker

Ps. De der vil prøve koden selv, skal lige være opmærksom på Kandu.dk (..som sædvanlig) har lavet ged i koden.

Linjen : popupImage=window.open("","_blank","left='+leftpos+',top='+toppos+',toolba r=no,scrollbars=no");
..skal være UDEN mellemrum i parameteren toolbar !!!

</MOLOKYLE>

Kommentar
Fra : molokyle


Dato : 13-07-04 07:53

Ps. ...ligesom der heller ikke skal være mellemrum i parameteren height :
onLoad='window.resizeTo(document.load_image.width+10,document.load_image.h eight+30)

</MOLOKYLE>

Kommentar
Fra : natmaden


Dato : 13-07-04 08:16

Er det en trøst at din kode overhovedet ikke virker hos mig. jeg får en helt blank side.
Er det osse kandu der har snuppet </title>

Kan du køre denne
Kode
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>POP-UP JAVA</title>

<script type="text/javascript">
<!--
function Testa()
{
   PW = window.open('billed.jpg','Test','height=200,width=400,scrollbars=1,resizable=1,menubar=0,status=1');
   if( PW ) PW.focus();
   return(false);
}
function Testb()
{
   PW = window.open('','Test','height=200,width=400,scrollbars=0,resizable=1,menubar=0,status=0');
   if( PW ) PW.focus();
   return(false);
}
// -->
</script>
</head>
<body>
<center>
<a href="" onclick="return Testa();">Test</a> Pop-up uden værktøjslinie
<br>
<a href="" onclick="return Testb();">Test</a> Pop-up uden scroll og status
</center>
</body>
</html>



Kommentar
Fra : snortop


Dato : 13-07-04 08:33

denne kode center dit pop up vindue.

Kode
<script language="JavaScript">
function openCenterWin(url,theWidth,theHeight){
var theTop=(screen.height/2)-(theHeight/2);
var theLeft=(screen.width/2)-(theWidth/2);
var features=
'height='+theHeight+',width='+theWidth+',top='+theTop+',left='+theLeft+",scrollbars=no";
theWin=window.open(url,'',features);
}
</script>


Du kalder så function med
openCenterWin("http://www.kandu.dk",300,300)

De 2 sidste tal er hvor store du vil have det

Så egentlig kan du vel heri skriver din størrelse på de billede du har, så få du samme resultat


Kommentar
Fra : molokyle


Dato : 13-07-04 08:45

natmaden -> Ja, det er også kandu.dk der har snuppet </title>

..og nej dit eksempel skriver blot test test

Her er et kørende eksempel på min fil : http://home20.inet.tele.dk/friheden/popup_center.htm

Så kan du se, hvor, jeg vil hen. Vinduet tilpasses automatisk billedet UDEN man behøver angive størrelse, men det vil ikke centrere på siden.

</MOLOKYLE>

Kommentar
Fra : molokyle


Dato : 13-07-04 08:58

Jeg kender udmærket dette script snortop og konceptuelt er der ingen forskel i kaldet til window.open(...);, men der skal man jo angive størrelsen på vinduet ...ikke fikst

Din beregning til at placere billedet/URL'en centreret benytter 2 divisioner pr. linje. Heller ikke effektivt.

var leftpos=(screen.width-x_pic.width)/2;
var toppos=(screen.height-x_pic.height)/2;

..giver samme resultat med blot én division

</MOLOKYLE>


Kommentar
Fra : molokyle


Dato : 13-07-04 09:05

natmaden & snortop -> Jeg vil bruge denne kode istedet for en løsning alá snortop's, fordi man kan hardcode HTML fra scriptet til pop-up'en og ikke blot indsætte en URL i et window.open(...); kald.

Derved kan f.eks. en lukke knap indsættes fra scriptet, uden man behøver at kode en side for alle billeder

</MOLOKYLE>

Kommentar
Fra : CLAN


Dato : 13-07-04 09:12

Hej Molo
Jeg er ikke nogen "ørn" i at skrive Java script (gu' ved hvad jeg er en ørn til)
Prøv at kigge på den her http://wsabstract.com/script/script2/popimage.shtml
Hygge...
Søren

Accepteret svar
Fra : snortop

Modtaget 100 point
Dato : 13-07-04 09:15

Molkyle -> jaja så også bareefter du forsøgte at beregner størrelsen på billede og vil så lave om på det script jeg havde lavet... men så det kom mere eller mindre til at ligne dit!

Kommentar
Fra : molokyle


Dato : 13-07-04 09:30

CLAN -> I princippet er idéen den samme som mit script, blot uden billede størrelse beregning. Det script du angiver beregner IKKE størrelsen af billedet automatisk som er dét der skulle være hele fidusen. Det laver blot en vindue på 200 X 255 pixel.

Problemet er stadig det samme : At få en beregnet parameter ind, som left= og top= i kaldet til window.open(...);

</MOLOKYLE>



Kommentar
Fra : molokyle


Dato : 13-07-04 09:38

Jeg gentager lige mig selv

Her er et kørende eksempel på min kode : http://home20.inet.tele.dk/friheden/popup_center.htm

..og :

Citat
Hvis man klikker på BILLEDET (..prøv det), valideres værdierne af varablene som de skal, men klikker man på pop-up knappen vil billedet ikke centreres med værdien af indsætningspunt x og indsætningspunkt y.


</MOLOKYLE>

Kommentar
Fra : molokyle


Dato : 13-07-04 09:48

Som det så tit går, har jeg selv fundet fejlen

popupImage=window.open("","_blank","left="+leftpos+",top="+toppos+",toolbar=no,scrollbars=no");

..det var det hele

natmaden kom nærmest, dog uden at løse det specifikke problem, snortop får pointene for dette spørgsmål og natmaden får de 400 tillægs bobs

Jeg retter lige koden i : http://home20.inet.tele.dk/friheden/popup_center.htm

..og vender tilbage.

</MOLOKYLE>

Godkendelse af svar
Fra : molokyle


Dato : 13-07-04 09:59

Du prøvede i det mindste snortop

</MOLOKYLE>
                        

Kommentar
Fra : snortop


Dato : 13-07-04 10:08

hehe ok... bare problemmet er læst

Kommentar
Fra : molokyle


Dato : 13-07-04 10:20

Nu også med lukke knap

http://home20.inet.tele.dk/friheden/popup_center.htm

De der synes de kan bruge det, er velkommne til at snuppe scriptet fra ovenstående URL.

</MOLOKYLE>

Kommentar
Fra : BjarneD


Dato : 13-07-04 12:21

Hej Molo

Jeg bruger dette, som jeg så gerne vil høre hvad u mener om:
Kode
<script language="javascript" type="text/javascript">
<!--
/****************************************************
Author: Eric King
Url: http://redrival.com/eak/index.shtml
This script is free to use as long as this info is left in
Featured on Dynamic Drive script library (http://www.dynamicdrive.com)
****************************************************/
var win=null;
function NewWindow(mypage,myname,w,h,scroll,pos){
if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=yes';
win=window.open(mypage,myname,settings);}
// -->
</script>

og til selve linket f. eks. denne:
Kode
<a href="http://www.xxx.dk/xx.htm" onclick="NewWindow(this.href,'xx_foto','725','500','no','center');return false" onfocus="this.blur()">
<img border="0" src="images/xx_small.jpg" xthumbnail-orig-image="images/xx.jpg" alt=" navn " width="90" height="86"></td>

Ville det være bedre at anvende din?

Kommentar
Fra : BjarneD


Dato : 13-07-04 12:22

Jeg skulle måske nævne, at denne giver popup ved klik på foto

Kommentar
Fra : natmaden


Dato : 13-07-04 13:42

Ja-Ja bare fordi at man lige tillader sig at sove lidt, så skal man til at betale for at følge med.
Kunne næsten sige at jeg kom sovende til det

Forresten virker min simple kode hos mig ??
Hvilket giver mig den tanke at det også handler om IE's indstillinger.
Jeg må i gang med lidt mere script(ting)
Man blir s.. hurtig tom i hovedet i min alder.

Nu vi lj eg hav emi gnog et morenmad

Natmaden.
PS . synd for alle dem med popupstopper, for det kan jo sagtens bruges til noget.
Her er en lille "plugin" til dit script
Kode
<html>
<head>
<title>RYST</title>
<script language="JavaScript1.2">
<!-- Begin
function ryst(n) {
if (self.moveBy) {
for (i = 8; i > 0; i--) {
for (j = n; j > 0; j--) {
self.moveBy(0,i);
self.moveBy(i,0);
self.moveBy(0,-i);
self.moveBy(-i,0);
}
}
}
}
// End -->
</script>
</head>
<body>
<form><input type=button onclick="ryst(15)" value="RYST"></form>
</body>
</html>

Og jow, den virker hos mig

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407838
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste