Avatar billede tuidoi Nybegynder
23. august 2009 - 22:37 Der er 10 kommentarer og
1 løsning

Hente info fra browser / html fil?

Hej eksperter

Hvordan tror I jeg kan lave en metode således at når man holder musen hen over et billede i browseren, så kommer navnet på billedet til at stå i en lille infoboks nede i højre hjørne af skærmen?

Man kan selvfølgelig se navnet på billedet hvis man trykker "Gem Som" men kunne godt tænke mig at det kom frem automatisk.

på forhånd tak for hjælpen!
Avatar billede gadensgaard Nybegynder
23. august 2009 - 22:57 #1
Java eller JavaScript?
Avatar billede tuidoi Nybegynder
23. august 2009 - 23:08 #2
I java. Det skal være et eksternt program der kører uafhængigt af browseren, men når man så har musen inde i browseren og trykker på et billede, så skal der vises en lille boks nede i hjørnet med billedets navn. f.eks. smiley.jpg
Avatar billede w13 Novice
24. august 2009 - 10:36 #3
Hvis det ikke behøver at være et Java-program, kan du skrive følgende JavaScript i adresselinjen på browseren. Billedets navn vil derefter kunne vises i en div med id "imgname".

java script:var oNew=document.createElement('div');oNew.setAttribute('id','imgname');oNew.appendChild(document.createTextNode(' '));document.getElementsByTagName('body')[0].appendChild(oNew);for(var i=0,im=document.getElementsByTagName('img');i<im.length;i++){im[i].onmouseover=new Function("document.getElementById('imgname').firstChild.nodeValue='"+im[i].getAttribute('src')+"'")}void(0)
Avatar billede tuidoi Nybegynder
24. august 2009 - 10:54 #4
Jeg kan ikke få det til at virke.

Skal jeg gå ind på siden først og skrive det?

f.eks.

1. gå ind på www.google.dk
2. skriv i samme felt

java script:var oNew=document.createElement('div');oNew.setAttribute('id','imgname');oNew.appendChild(document.createTextNode(' '));document.getElementsByTagName('body')[0].appendChild(oNew);for(var i=0,im=document.getElementsByTagName('img');i<im.length;i++){im[i].onmouseover=new Function("document.getElementById('imgname').firstChild.nodeValue='"+im[i].getAttribute('src')+"'")}void(0)

3. imgname kommer frem i en div


Ps. Og forresten synes jeg det er en genial måde at gøre det på, så kan jeg bare indsætte det lille script på alle sider også kommer der en lille div boks under hvert billede med navnet?

Du må meget gerne skrive hvordan du får det til at virke, så er pointne dine.
Avatar billede w13 Novice
24. august 2009 - 11:10 #5
Nej, det har ikke meget med Google at gøre. ;)

Men åbn en tilfældig side, som har billeder. F.eks. denne side, vi skriver på nu!

Gå op i adresselinjen (der hvor der står http://www.eksperten...) og indsæt:

java script:var oNew=document.createElement('div');oNew.setAttribute('id','imgname');oNew.style.position='absolute';oNew.appendChild(document.createTextNode(' '));document.getElementsByTagName('body')[0].appendChild(oNew);for(var i=0,im=document.getElementsByTagName('img');i<im.length;i++){im[i].onmouseover=new Function("document.getElementById('imgname').firstChild.nodeValue='"+im[i].getAttribute('src')+"';document.getElementById('imgname').style.top='"+im[i].offsetTop+"px'"document.getElementById('imgname').style.left='"+im[i].offsetLeft+"px'");im[i].onmouseout=new Function("document.getElementById('imgname').firstChild.nodeValue=''");}void(0)

(Beklager at den indsatte et mellemrum mellem java og script før.)

Tryk på enter-tasten.

Når du derefter holder musen over et billede på siden vil du kunne se navnet på billedet nederst på siden.

For at rykke div-boksen op i toppen af siden kan du bare bruge følgende CSS:

#imgname{
  z-index:1;
  position:absolute;
  top:0;
  background-color:#fff;
}

Jeg har i øvrigt skrevet JavaScript-koden om, så den skjuler navnet igen, når du flytter musen fra billedet!
Avatar billede w13 Novice
24. august 2009 - 11:12 #6
Hov, der var vist et par fejl i.

Jeg har nu forenklet den en hel del, så billede-adressen bare bliver vist som et tooltip:

java script:for(var i=0,im=document.getElementsByTagName('img');i<im.length;i++){im[i].title=im[i].getAttribute('src');}void(0)
Avatar billede w13 Novice
24. august 2009 - 11:13 #7
Du skal derfor ikke bruge noget CSS til den!
Avatar billede tuidoi Nybegynder
24. august 2009 - 11:21 #8
Nu har jeg prøvet her på denne side at indsætte:

java script:for(var i=0,im=document.getElementsByTagName('img');i<im.length;i++){im[i].title=im[i].getAttribute('src');}void(0)

og trykke enter.
Og kan nu se at når jeg holde musen henover dit profil billede så kommer der en lille tooltip der skriver /avatar?980 men når jeg prøver at gemme billedet vha. gem som er det et andet filnavn jeg får. her er det 77990_w13__jpg hvilket virker mere rigtigt.

Men stresser jeg egentligt ikke ekspertens server hvis jeg hvergang skal tilføje noget javascript for at vise det på min måde? eller kører det udelukkende på klient siden?
Avatar billede w13 Novice
24. august 2009 - 11:29 #9
Nej, JavaScript kører kun hos klienten.

Og ja, jeg kan selvfølgelig godt se, at det kan være et problem at den ikke viser den rigtige adresse, men det er fordi "/avatar?980" er en PHP-side, som viser det korrekte billede. Så lige i dette tilfælde kan du ikke få vist den helt rigtige adresse med JavaScript, men normalt vil det være den korrekte billede-sti.

Ikke at den er decideret forkert, for hvis du går ind på www.eksperten.dk/avatar?980, så bliver det korrekte billede vist, men det er selvfølgelig ikke filens helt korrekte navn heller..
Avatar billede w13 Novice
24. august 2009 - 12:59 #10
:)
Avatar billede w13 Novice
07. maj 2010 - 10:54 #11
Lukketid? :)
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
Kurser inden for grundlæggende programmering

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