|
| Kræver to klik med JavaScript Fra : Kristian |
Dato : 17-11-04 20:32 |
|
Hejsa
Jeg er irriteret over et problem på min side, som jeg ikke tror
skyldes en bug. Problemet kan let demonstreres ved at lave et
html-dokument med indhold som set nederst i dette indlæg.
Et billede er et link til en javascript-funktion, som viser en
meddelelse, hvis et andet billede har bredde og højde større end
nul.
Når jeg klikker på billed-linket første gang sker der
ingenting, men anden gang jeg klikker, gør den hvad den skal.
Hvis jeg opdaterer siden eller lukker vinduet og åbner siden på
ny, skal der nu kun ét klik til - lige indtil jeg ændrer
billedernes filnavne og henvisning i koden.
Jeg har på fornemmelsen, at linket (eller billedet?) bliver
"loadet" første gang jeg klikker og først anden gang, kan der ske
noget rigtigt.
Hjælp mig til at omgå dette problem, så er jeg glad. Her er koden
(uden 'pre'-tags, forstås):
<pre>
<html>
<head>
<title>test of problem</title>
<script type="text/javascript" language="JavaScript">
function newImage(img) {
image = new Image();
image.src = img;
if ((image.width != 0) && (image.height != 0)) {
alert("The linked image is fine");
}
}
</script>
</head>
<body>
<a href="javascript:newImage('large-image.png');"><img
src="small-image.png" style="border: none;"></a>
</body>
</html>
</pre>
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Jens Gyldenkærne Cla~ (18-11-2004)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 18-11-04 11:50 |
|
Kristian skrev:
> Jeg er irriteret over et problem på min side, som jeg ikke tror
> skyldes en bug. Problemet kan let demonstreres ved at lave et
> html-dokument med indhold som set nederst i dette indlæg.
Har du et link til din side? Det er lettere at se problemet online (og
din html-kode er jo ikke nok, der skal også bruges nogle billeder).
Se evt < http://infimum.dk/HTML/hjaelpmig.html>.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Anarko (18-11-2004)
| Kommentar Fra : Anarko |
Dato : 18-11-04 19:26 |
|
Jens Gyldenkærne Clausen wrote:
> Kristian skrev:
>
>
>>Jeg er irriteret over et problem på min side, som jeg ikke tror
>>skyldes en bug. Problemet kan let demonstreres ved at lave et
>>html-dokument med indhold som set nederst i dette indlæg.
>
>
> Har du et link til din side? Det er lettere at se problemet online (og
> din html-kode er jo ikke nok, der skal også bruges nogle billeder).
>
> Se evt < http://infimum.dk/HTML/hjaelpmig.html>.
>
Jo, men desværre har jeg ikke en plads på internettet - jeg kører min
side på min egen IIS-server indenfor en skrap router...
Jeg ved godt, jeg ikke har lagt billeder ved, men det er faktisk helt
ligegyldigt hvilke billeder man bruger - man kan bare lave sig et stort
og et lille billede i Paint.
Jeg ved godt, det måske er lidt meget forlangt at en hjælpende hånd
først skal til at lave to billeder, men jeg ville ikke bede om hjælp,
hvis jeg ikke først havde udtømt nettet så godt jeg kunne. Jeg finder
hjælp via Google m.f. til en mængde problemer hver dag, men dette her
var ikke så let tilgængeligt.
Jeg husker at have set et lignende problem for noget tid siden, hvor en
fyr var nødt til at trykke to gange på en Submit-knap for at sende sin
form - og der var en løsning. Det kan jeg bare ikke finde igen...
Håber på hjælp
Kristian
| |
Allan Vebel (21-11-2004)
| Kommentar Fra : Allan Vebel |
Dato : 21-11-04 01:18 |
|
Anarko <kristian.d@ofir.dk> skrev:
> Jo, men desværre har jeg ikke en plads på internettet
Du har vel altid lidt plads ved din internetudbyder?
> Jeg ved godt, det måske er lidt meget forlangt at en
> hjælpende hånd først skal til at lave to billeder
Ja, det er for meget - du skal kunne levere det hele selv.
Et enkelt link til problemet vil gøre underværker - der er
ingen der gider at lave billeder eller klippe kode ud og
genskabe din side på egen harddisk - det er dig selv der
skal levere problematikken.
--
Allan Vebel
Hjælp os til nye aktuelle artikler og faq-svar - skriv til
http://html-faq.dk/kontakt.asp
| |
Jens Gyldenkærne Cla~ (18-11-2004)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 18-11-04 23:46 |
|
Anarko skrev:
> Jo, men desværre har jeg ikke en plads på internettet -
Der er masser af steder hvor man kan lægge sider gratis op - her er
fx én: < http://frac.dk/>.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Anarko (19-11-2004)
| Kommentar Fra : Anarko |
Dato : 19-11-04 00:32 |
|
Jens Gyldenkærne Clausen wrote:
> Anarko skrev:
>
>
>>Jo, men desværre har jeg ikke en plads på internettet -
>
>
> Der er masser af steder hvor man kan lægge sider gratis op - her er
> fx én: < http://frac.dk/>.
Jeg ved det godt... Jeg synes blot det er lidt meget, at skulle til at
oprette sig, for at få hjælp til problemet. Jeg skriver mine sider med
ASP og kører dem på min egen computer; senere køber jeg nok en
hotel-plads på webhosting.dk...
Jeg tænker desuden at en javascript-buff godt kan gennemskue problemet,
og måske kender til det i forvejen - det er trods alt et ganske simpelt
eksempel.
Mvh.
| |
Jens Gyldenkærne Cla~ (19-11-2004)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 19-11-04 10:26 |
|
Anarko skrev:
> Jeg ved det godt... Jeg synes blot det er lidt meget, at skulle til at
> oprette sig, for at få hjælp til problemet.
Måske. Jeg synes det er lidt meget at skulle oprette en side for at
kunne se problemet.
> Jeg tænker desuden at en javascript-buff godt kan gennemskue problemet,
> og måske kender til det i forvejen -
Det er ikke utænkeligt. Jeg tror bare dine chancer for at få hjælp ville
være større hvis du gjorde det lettere for folk der vil hjælpe dig.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
JH (20-11-2004)
| Kommentar Fra : JH |
Dato : 20-11-04 00:37 |
|
Kristian wrote:
> Hejsa
>
> Jeg er irriteret over et problem på min side, som jeg ikke tror
> skyldes en bug. Problemet kan let demonstreres ved at lave et
> html-dokument med indhold som set nederst i dette indlæg.
>
> Et billede er et link til en javascript-funktion, som viser en
> meddelelse, hvis et andet billede har bredde og højde større end
> nul.
> Når jeg klikker på billed-linket første gang sker der
> ingenting, men anden gang jeg klikker, gør den hvad den skal.
> Hvis jeg opdaterer siden eller lukker vinduet og åbner siden på
> ny, skal der nu kun ét klik til - lige indtil jeg ændrer
> billedernes filnavne og henvisning i koden.
> Jeg har på fornemmelsen, at linket (eller billedet?) bliver
> "loadet" første gang jeg klikker og først anden gang, kan der ske
> noget rigtigt.
>
> Hjælp mig til at omgå dette problem, så er jeg glad. Her er koden
> (uden 'pre'-tags, forstås):
>
> <pre>
>
> <html>
> <head>
> <title>test of problem</title>
> <script type="text/javascript" language="JavaScript">
> function newImage(img) {
> image = new Image();
> image.src = img;
>
> if ((image.width != 0) && (image.height != 0)) {
> alert("The linked image is fine");
> }
> }
> </script>
> </head>
> <body>
> <a href="javascript:newImage('large-image.png');"><img
> src="small-image.png" style="border: none;"></a>
> </body>
> </html>
>
> </pre>
>
Måske er det bare mig der er blind, men jeg synes ikke jeg kan se hvor i
JS-koden du sætter src på dit IMG-tag?
Jeg ville tro noget i stil med:
<html>
<head>
<title>test of problem</title>
<script type="text/javascript" language="JavaScript">
function newImage(imgObj, path) {
imgObj.src = path;
}
</script>
</head>
<body>
<a href="javascript:newImage('MyImg','large-image.png');"><img id="MyImg"
src="small-image.png" style="border: none;"></a>
</body>
</html>
Mvh
Jeppe
| |
Anarko (20-11-2004)
| Kommentar Fra : Anarko |
Dato : 20-11-04 01:00 |
|
JH wrote:
> Kristian wrote:
>
>> Hejsa
>>
>> Jeg er irriteret over et problem på min side, som jeg ikke tror
>> skyldes en bug. Problemet kan let demonstreres ved at lave et
>> html-dokument med indhold som set nederst i dette indlæg.
>>
>> Et billede er et link til en javascript-funktion, som viser en
>> meddelelse, hvis et andet billede har bredde og højde større end
>> nul.
>> Når jeg klikker på billed-linket første gang sker der
>> ingenting, men anden gang jeg klikker, gør den hvad den skal.
>> Hvis jeg opdaterer siden eller lukker vinduet og åbner siden på
>> ny, skal der nu kun ét klik til - lige indtil jeg ændrer
>> billedernes filnavne og henvisning i koden.
>> Jeg har på fornemmelsen, at linket (eller billedet?) bliver
>> "loadet" første gang jeg klikker og først anden gang, kan der ske
>> noget rigtigt.
>>
>> Hjælp mig til at omgå dette problem, så er jeg glad. Her er koden
>> (uden 'pre'-tags, forstås):
>>
>> <pre>
>>
>> <html>
>> <head>
>> <title>test of problem</title>
>> <script type="text/javascript" language="JavaScript">
>> function newImage(img) {
>> image = new Image();
>> image.src = img;
>>
>> if ((image.width != 0) && (image.height != 0)) {
>> alert("The linked image is fine");
>> }
>> }
>> </script>
>> </head>
>> <body>
>> <a href="javascript:newImage('large-image.png');"><img
>> src="small-image.png" style="border: none;"></a>
>> </body>
>> </html>
>>
>> </pre>
>>
>
> Måske er det bare mig der er blind, men jeg synes ikke jeg kan se hvor i
> JS-koden du sætter src på dit IMG-tag?
>
> Jeg ville tro noget i stil med:
>
> <html>
> <head>
> <title>test of problem</title>
> <script type="text/javascript" language="JavaScript">
> function newImage(imgObj, path) {
> imgObj.src = path;
> }
> </script>
> </head>
> <body>
> <a href="javascript:newImage('MyImg','large-image.png');"><img id="MyImg"
> src="small-image.png" style="border: none;"></a>
> </body>
> </html>
>
> Mvh
> Jeppe
>
Jeg forstår vist ikke, hvad du ikke forstår Jeg sætter src som
argument når jeg kalder funktionen: newImage('large-image.png'), jeg har
vist ikke brug for mere?
Det du i dit forslag har kaldt "imgObj", er bare hvad jeg har kaldt
"image" (måske var det et ændringsforlag?).
Med venlig hilsen
| |
Anarko (20-11-2004)
| Kommentar Fra : Anarko |
Dato : 20-11-04 01:04 |
|
JH wrote:
> Kristian wrote:
>
>> Hejsa
>>
>> Jeg er irriteret over et problem på min side, som jeg ikke tror
>> skyldes en bug. Problemet kan let demonstreres ved at lave et
>> html-dokument med indhold som set nederst i dette indlæg.
>>
>> Et billede er et link til en javascript-funktion, som viser en
>> meddelelse, hvis et andet billede har bredde og højde større end
>> nul.
>> Når jeg klikker på billed-linket første gang sker der
>> ingenting, men anden gang jeg klikker, gør den hvad den skal.
>> Hvis jeg opdaterer siden eller lukker vinduet og åbner siden på
>> ny, skal der nu kun ét klik til - lige indtil jeg ændrer
>> billedernes filnavne og henvisning i koden.
>> Jeg har på fornemmelsen, at linket (eller billedet?) bliver
>> "loadet" første gang jeg klikker og først anden gang, kan der ske
>> noget rigtigt.
>>
>> Hjælp mig til at omgå dette problem, så er jeg glad. Her er koden
>> (uden 'pre'-tags, forstås):
>>
>> <pre>
>>
>> <html>
>> <head>
>> <title>test of problem</title>
>> <script type="text/javascript" language="JavaScript">
>> function newImage(img) {
>> image = new Image();
>> image.src = img;
>>
>> if ((image.width != 0) && (image.height != 0)) {
>> alert("The linked image is fine");
>> }
>> }
>> </script>
>> </head>
>> <body>
>> <a href="javascript:newImage('large-image.png');"><img
>> src="small-image.png" style="border: none;"></a>
>> </body>
>> </html>
>>
>> </pre>
>>
>
> Måske er det bare mig der er blind, men jeg synes ikke jeg kan se hvor i
> JS-koden du sætter src på dit IMG-tag?
Hmm... Måske misforstod jeg dig i første omgang. Men jeg skal altså ikke
sætte source for mit img-tag andre steder end i selve tag'et. Jeg vil
ikke udskifte billedet med et andet, jeg vil bare have at funktionen
skal afvikles, når jeg klikker på linket (som er et billede) - men det
kræver to klik af mig.
Med venlig hilsen
Kristian
| |
JH (20-11-2004)
| Kommentar Fra : JH |
Dato : 20-11-04 02:27 |
|
Anarko wrote:
> Hmm... Måske misforstod jeg dig i første omgang. Men jeg skal altså ikke
> sætte source for mit img-tag andre steder end i selve tag'et. Jeg vil
> ikke udskifte billedet med et andet, jeg vil bare have at funktionen
> skal afvikles, når jeg klikker på linket (som er et billede) - men det
> kræver to klik af mig.
Ah... sorry jeg har læst dit spørgsmål helt forkert... duh!
Jeg tror grunden til den spøjse opførsel kan være pga af at 1. gang du
kalder funktionen, har browseren ikke loadet billedet, og derefter er
din if-test ikke sand. 2. gang derimod har den loadet det andet
billedet. Det KAN være grunden. For at se om det er grunden kan du prøve
flg.:
MyImage = new Image();
MyImage.src = "large-image.png";
function newImage(img)
{
image = new Image();
image.src = img;
if ((image.width != 0) && (image.height != 0)) alert("The linked image
is fine");
}
HVIS det afhjælper problemet kan du prøve at kigge på den property der
hedder 'complete', som er en read-only property, der fortæller om
browseren har loadet billedet eller ej.
Eller måske kan onLoad bruges:
function newImage(img)
{
image = new Image();
image.src = img;
image.onLoad = nisse(image);
}
function nisse(i)
{
if ((i.width != 0) && (i.height != 0)) alert("The linked image is fine");
}
Prøv evt. med nogle MEGET store billeder som tager tid at loade, så er
det nemmere at se.
Mvh
Jeppe
| |
Morten Lehrmann (22-11-2004)
| Kommentar Fra : Morten Lehrmann |
Dato : 22-11-04 21:20 |
|
Kristian wrote:
> Når jeg klikker på billed-linket første gang sker der
> ingenting, men anden gang jeg klikker, gør den hvad den skal.
Har du fået løst problemet?
Ellers ser dette ud til at virke (testet i Firefox 1.0):
<html>
<head>
<title>test of problem</title>
<script type="text/javascript" language="JavaScript">
var image;
function newImage(img) {
image = new Image();
image.src = img;
wait();
}
function wait() {
if ( image.complete ) {
if ((image.width != 0) && (image.height != 0)) {
alert("The linked image is fine");
}
} else {
setTimeout("wait()",500);
}
}
</script>
</head>
<body>
<a href="javascript:newImage('...');"><img src="..."
style="border: medium none ;"></a>
</body>
</html>
Mvh.
Morten
--
http://lehr.dk
Linux lehr.dk 2.2.20 #1 Sat Apr 20 11:45:28 EST 2002 i586 unknown
21:13:36 up 71 days, 6:36, 2 users, load average: 0.20, 0.08, 0.01
| |
Anarko (23-11-2004)
| Kommentar Fra : Anarko |
Dato : 23-11-04 00:34 |
|
Morten Lehrmann wrote:
> Kristian wrote:
>
>> Når jeg klikker på billed-linket første gang sker der
>>ingenting, men anden gang jeg klikker, gør den hvad den skal.
>
>
> Har du fået løst problemet?
>
> Ellers ser dette ud til at virke (testet i Firefox 1.0):
>
> <html>
> <head>
> <title>test of problem</title>
> <script type="text/javascript" language="JavaScript">
> var image;
> function newImage(img) {
> image = new Image();
> image.src = img;
> wait();
> }
> function wait() {
> if ( image.complete ) {
> if ((image.width != 0) && (image.height != 0)) {
> alert("The linked image is fine");
> }
> } else {
> setTimeout("wait()",500);
> }
> }
> </script>
> </head>
> <body>
> <a href="javascript:newImage('...');"><img src="..."
> style="border: medium none ;"></a>
> </body>
> </html>
>
>
> Mvh.
> Morten
>
>
Tusind tak, det er perfekt! Og et meget nydeligt script, må jeg også sige.
Takker.
| |
|
|