Jag har en massa småbilder (punkter) som ligger utpositionerade och som genererats dynamiskt i aspx-codebehind (c#). Hej Hej Peter, Hej Niklas Fast egentligen är ju det snarare en IE-effekt i så fall, att det överhuvudtaget fungerar på det viset. För annars är "javascript:" enbart en label. Jag syftade på Ja, självklart är det alltid webbläsaren som skall klura ut allt, annars vore det konstigt... ;) Okej, om jag säger så här: Det finns ingen som helst standard som säger att det är rimligt att skriva in en label för att markera vilken upplaga av en viss funktion som ska köras. Det är i så fall någon på IE som har kommit på ett skumt och okonventionellt sätt att ange det. <b>Exempel: Hej Stefan Hej Niklas Med label menar jag den otrevliga konstruktion som finns i i stort sett alla språk. Jaså, låter märkligt (använder iofs ganska sällan js, har inte använt html på länge)... Hej Det jag menar är snarare om "openPage" ingår i standarden? "openPage" är en egendefinierad javascript-funktion...Script för popup info om bilder
I bildernas TITLE-tag finns infotext om varje punkt som visas som ToolTip när musen hoovrar över respektive bild (t ex: "Skärm (röd), i lager 23 st, 50 st beställda 2006-10-10" osv).
ToolTip texten försvinner efter bara några få sekunder så jag vill ha ett generellt script på sidan som visar en popup-ruta med respektive bilds info när man klickar på den.
Dvs:
Vid klick på bilder med t ex id="mypicsX" skall en popup visas som visar den klickade bildens Title-text.
Mvh
MarkusSv: Script för popup info om bilder
Knådade ihop en grund, hoppas den passar.
Om den fungerar i webbläsare utöver IE och FF, är jag inte helsäker på.
<b>Exempel:</b>
<html>
<head>
<script language="javascript">
function showPopup(e, image) {
var mouseX, mouseY;
if(document.all) {
mouseX = e.clientX + document.body.scrollLeft;
mouseY = e.clientY + document.body.scrollTop;
} else {
mouseX = e.pageX;
mouseY = e.pageY;
}
var layer = document.getElementById("popup_layer");
layer.innerHTML = image.title;
layer.style.left = mouseX;
layer.style.top = mouseY;
layer.style.visibility = "visible";
}
function closePopup() {
var layer = document.getElementById("popup_layer");
layer.style.visibility = "hidden";
}
</script>
<style type="text/css">
.popup {
visibility: hidden;
padding: 5px;
position: absolute;
height: 100px;
width: 150px;
border: 1px solid #000000;
}
</style>
</head>
<body>
<span id="popup_layer" class="popup" onclick="javascript:closePopup();">
</span>
<img src="img.png" title="Popup Test" onclick="javascript:showPopup(event, this);">
</body>
</html>
/ Peter
Sv:Script för popup info om bilder
Tack för hjälpen, kanonsnyggt!
Min lösning med alert() var ju inte direkt flashig. ;-)
MarkusSv:Script för popup info om bilder
Det är en vana jag har. Du kan utelämna den om du vill.
Om du har både exempelvis JavaScript och VBScript så är det
rekommenderat att använda "javascript:" resp. "vbscript:".
Vilken du väljer att använda beror på vilken funktion du vill anropa. Om
du exvis har två funktioner som har samma namn, måste du använda
antingen "javascript:" eller "vbscript:" för att specifiera vilken funktion du
menar.
Om du utelämnar "javascript:" / "vbscript:" så är det upp till webbläsaren
att klura ut vilken du menar. Har du då två funktioner som är namngivna
likadant, så anropas den första av dem.
För övrigt så kan du endast använda VBScript i "Internet Explorer" (om jag
inte minns helt fel).
Men som sagt, den kan helt utelämnas i de flesta fall.
<b>Exempel:</b>
Testa att i följande exempel byta ut "javascript:" mot "vbscript:".
<html>
<head>
<script language="javascript">
function HelloWorld() {
alert("Hello world!");
}
</script>
<script language="vbscript">
Sub HelloWorld()
MsgBox "Hello world!"
End Sub
</script>
</head>
<body onload="javascript:HelloWorld()">
</body>
</html>
/ Peter
Sv: Script för popup info om bilder
Ska man vara riktigt petnoga är det väl iofs upp till browsern att tolka texten innanför som den själv vill.Sv: Script för popup info om bilder
<b>>Om du utelämnar "javascript:" / "vbscript:" så är det upp till webbläsaren
att klura ut vilken du menar.</b>
Det är alltid upp till webbläsaren att klura ut vilken man menar. IE råkar ha ett ovanligt beteende på den punkten bara (det tolkar något som normalt ska tolkas som en label till en slags språkhänvisning).Sv:Script för popup info om bilder
Skulle vara skoj om våffeljärnet hoppade igång och tolkade all "kod" :) ;) :PSv: Script för popup info om bilder
Sv: Script för popup info om bilder
Testa att i följande exempel byta ut "javascript:" mot "vbscript:". </b>
Peter, det där var ett bra exempel... har faktiskt inte tänkt på det själv. Tror jag att jag skall använda åt mina elever.
Dock tycker jag rent "programmeringsmässigt" att man inte skall ha två funktioner med samma namn på samma "sida"... trots att det är olika skriptspråk... men jag tyckte som sagt att det var ett mycket bra exempel. =)Sv:Script för popup info om bilder
Hehe, näe det är nog inget man tänker på.
VBScript används ju inte så mkt heller.
Du har rätt i att man inte skall ge funktioner samma namn.
Själv använder jag aldrig VBScript, är bara en vana jag har att skriva "javascript:". :)
CheersSv:Script för popup info om bilder
Var har du läst att det inte finns någon som helst standard som anger om det är rimligt eller inte rimligt, att använda en label så som "javascript:" / "vbscript:"?
/ PeterSv: Script för popup info om bilder
typ
a:
XYZ
goto a
a är en label där.
Samma sak är "javascript" i det här fallet. Det är en label. Det är som att säga att om funktionens namn börjar med j så är det javascript, om det börjar med v så är det vbscript. Det är en helt godtycklig konstruktion.Sv:Script för popup info om bilder
Svara
Sv: Script för popup info om bilder
Har du någon källa som säger att det är så?Sv:Script för popup info om bilder
Nej, jag har ingen källa att referera till.
Det går juh dock konstatera (i första exemplet nedan) att så är det bara.
Utelämnar man "javascript:" så funkar det inte. :)
Istället för att skriva:
<code>
Öppna
</code>
kan du också skriva:
<code>
Öppna
Öppna
Öppna
</code>
Vilket man väljer är väl en vana och upp till problemet som skall lösas...
/ PeterSv: Script för popup info om bilder
Kräver firefox att det står "javascript:" framför också?Sv:Script för popup info om bilder
Och FireFox kräver att det står "javascript:" framför, ja.
Försökt leta lite efter information ang detta, men ej ännu hittat nåt.
Om du stöter på nåt, säg gärna till :)
Intressanta diskussioner detta. :)
/ Peter