Avatar billede marsk Nybegynder
13. august 2006 - 11:18 Der er 22 kommentarer og
1 løsning

function hvilken der kalder den

hey Eksperter

har prøvet i et stykke tid at få det til at virke i firefox/IE
<script language="JavaScript">
function proc(e){
e.style.visibility = "visible";
}   
</script>

i forlykken:
<img src="<? echo $img; ?>" onMouseOver="proc("<? echo $variab; ?>")">
<div class="<? echo $variab; ?>" style="visibility: hidden;">content</div>

e har jeg fået fra et eksemple
men skal pege på div'en så for hvert billede vises dens div med content når man køre musen over

kan være det er en simple ting - men man kan kigge sig blind på det
Avatar billede thesurfer Nybegynder
13. august 2006 - 12:30 #1
Der må da være en fejl i din onmouseover kode: onMouseOver="proc("<? echo $variab; ?>")"

Det skal være: onMouseOver="proc('<? echo $variab; ?>')"

Du starter med "-tegnet, og kommer til at afslutte onmouseover her: proc("

Skift mellem "-tegnet og '-tegnet for at undgå problemet.
Avatar billede thesurfer Nybegynder
13. august 2006 - 12:31 #2
Skal dit div ikke have et id (som er unikt) i stedet?
Avatar billede marsk Nybegynder
13. august 2006 - 14:19 #3
kom lidt længere med ' ' - fik den til at vis variab(værdien) i en alert

den siger så at style isnt an object...
kan jeg ik bruge Class' til dette?
Avatar billede thesurfer Nybegynder
13. august 2006 - 14:27 #4
Du skal have fat i objektet, og ikke classen
Altså:

<div id="...." ...>
Avatar billede thesurfer Nybegynder
13. august 2006 - 14:32 #5
Da du ikke sender objektet med, skal din funktion nok se sådan ud:

function proc(e){
document.getElementById(e).style.visibility = "visible";
}

Men du skal også sørge for at det virker med IE, så funktionen nok se sådan ud:

function proc(id)
{
    if (document.all)
    {
        obj = document.all[id];
        // andet IE kode
    }
    } else {
        obj = document.getElementById(id);
        // andet ikke-IE kode
    }
    obj.style.visibility = "visible";
}
Avatar billede mclemens Nybegynder
13. august 2006 - 16:46 #6
[ Men du skal også sørge for at det virker med IE, så funktionen nok se sådan ud: ]

Hvilken IE version understøtter ikke getElementById()?
Den første virker fint nok i IE 6.0 hos mig...


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javaScript">
function proc(e){
document.getElementById(e).style.visibility="visible";

</script>

</head><body>
<img src="123.jpg" onMouseOver="proc('test')" alt="123">
<div id="test" style="visibility: hidden;">content</div>
</body></html>






P.s.: [ // andet IE kode ] Opera identificerer sig også som en document.all
så en document.all er ikke lig IE men lig IE eller OP - i dette tilfælde er
det ligemeget da OP så også understøtter document.all - men ellers bruger
jeg selv denne her når jeg skal fange IE: var IE=((document.all) && (navigator.userAgent.indexOf('Opera')== -1))?true:false;
og så if(IE){/*andet IE kode */}
Avatar billede mclemens Nybegynder
13. august 2006 - 16:51 #7
Edit: Den første (af dem i 13/08-2006 14:32:01) virker fint nok i IE 6.0 hos mig...
Avatar billede thesurfer Nybegynder
13. august 2006 - 17:23 #8
Hmm.. underligt..

Jeg har nogen gange oplevet at IE ikke accepterer "getElementById", men kun "all"..

F.eks. da jeg lavede scriptet i http://www.eksperten.dk/spm/725612#rid6378075 (12/08-2006 17:11:22), hvor jeg blev nødt til at lave følgende:

    if (document.all)
    {
        img_billede = document.all['billede'];
        div_loader = document.all['loader'];
        div_navigation = document.all['navigation'];
    } else {
        img_billede = document.getElementById('billede');
        div_loader = document.getElementById('loader');
        div_navigation = document.getElementById('navigation');
    }

Ellers meldte IE fejl i linien "img_billede = document.getElementById('billede');"..
Avatar billede marsk Nybegynder
13. august 2006 - 17:52 #9
getElementById(e) virker fint i begge browsere
dem der skal bruge side køre med firefox

thesurfer - svar for point ^^
Avatar billede mclemens Nybegynder
13. august 2006 - 17:55 #10
M.h.t. det du nævner så har jeg også selv oplevet det til tider...
(kan ikke lige gennemskue asp og kan ikke lige finde et / lave et eksempel)
... men mener at jeg løste det ved at deklarere nogle globale variabler
uden for funktionerne ... som f.eks. var billede, loader, navigation;
- men som sagt mener ... kan huske forkert - har ikke lige en
kodning ved hånden som jeg kan teste det på...
Avatar billede thesurfer Nybegynder
13. august 2006 - 18:28 #11
marsk> Svar :-)

mclemens> Ja, det er lidt underligt, for det sker kun nogen gange..
Her er kildekoden for den afviklede kode (efter ASP er afviklet), hvis du vil teste det:

<html>
<head>
<title>Galleri</title>
<style type="text/css">
/* brug din eget CSS */
body
{
    background-color:#000000;
    color:#cccccc;
    font-family:tahoma;
    font-size:12px;
}
</style>
<script type="text/JavaScript" language="JavaScript">
function initialiser()
{
    loader_besked = "Loader billede...";
    billeder = new Array();
    billeder[billeder.length] = 'filnavn1.gif';
    billeder[billeder.length] = 'filnavn2.gif';
    billeder[billeder.length] = 'filnavn3.gif';
    billeder[billeder.length] = 'filnavn4.gif';
    billeder[billeder.length] = 'filnavn5.gif';
    nr = 0;

    if (document.all)
    {
        img_billede = document.all['billede'];
        div_loader = document.all['loader'];
        div_navigation = document.all['navigation'];
    } else {
        img_billede = document.getElementById('billede');
        div_loader = document.getElementById('loader');
        div_navigation = document.getElementById('navigation');
    }

    if (billeder.length > 0)
    {
        div_loader.innerHTML = loader_besked;
        div_navigation.style.display = "";
    }

    vis_billede(); // viser billedet (som er det første, da nr er lig 0)
}

function vis_billede()
{
    img_billede.src = 'somefolder\\' + billeder[nr];
}

function skjul_load_besked_og_vis_billede()
{
    div_loader.style.display = "none";
    img_billede.style.display = "";
}


function vis_load_besked_og_loadet_billedet()
{
    div_loader.style.display = "";
    img_billede.style.display = "none";
    setTimeout("vis_billede();",1); // forsinkelse på 1 ms, for at loading-beskeden kan nå at komme frem
}

function prevnext(pm)
{
    // pm = PlusMinus (frem / tilbage)
    // 1 = true = p = plus = frem
    // 0 = false = m = minus = tilbage

    if (pm)
    {
        nr++;
        if (nr >= billeder.length) nr = 0;
    } else {
        nr--;
        if (nr < 0) nr = billeder.length - 1;
    }
    vis_load_besked_og_loadet_billedet();
}

</script>
</head>
<body onload="initialiser()">
<noscript>
Dette galleri bruger <b>JavaScript</b>, hvilket er sl&aring;et fra i din browser.<br>
For at kunne benytte galleriet skal du sl&aring; JavaScript til.
</noscript>

<div id="navigation" style="display:none">
<a href="#" onclick="prevnext(0);return false">Vis forrige billede</a>
&nbsp;
<a href="#" onclick="prevnext(1);return false">Vis næste billede</a>
<br><br>
</div>

<div id="beholder" style="position:absolute;">
    <div id="loader" style="position:absolute;width:100px">&nbsp;</div>
    <img src="" id="billede" onload="skjul_load_besked_og_vis_billede();" style="position:absolute;display:none">
</div>

</body>
</html>
Avatar billede thesurfer Nybegynder
13. august 2006 - 18:31 #12
mclemens> En forklaring på hvad ASP koden gør:
ASP koden gennemløber en mappe, som den får via en querystring ("?ShowPic=MappeNavn").

I den afviklede kode ovenover (13/08-2006 18:28:13), er navnet på mappen "somefolder", som også fremgår af denne linie i funktionen "vis_billede()":

img_billede.src = 'somefolder\\' + billeder[nr];
Avatar billede thesurfer Nybegynder
13. august 2006 - 18:33 #13
Rettelse:
ASP koden gennemløber en mappe, som den får via en querystring ("?ShowPic=MappeNavn"), og udskriver filnavnene på de filer der ligger i mappen, til en array kaldet "billeder".

Du kan simulere denne handling, ved at redigere i disse linier (som du sikkert allerede ved):

    billeder = new Array();
    billeder[billeder.length] = 'filnavn1.gif';
    billeder[billeder.length] = 'filnavn2.gif';
    billeder[billeder.length] = 'filnavn3.gif';
    billeder[billeder.length] = 'filnavn4.gif';
    billeder[billeder.length] = 'filnavn5.gif';
Avatar billede mclemens Nybegynder
13. august 2006 - 19:23 #14
Hmmm, kan ikke rigtig få den til at give en fejl ved test...

...


function initialiser()
{
    loader_besked = "Loader billede...";
    billeder = new Array();
    billeder[billeder.length] = 'image.jpg';
    billeder[billeder.length] = 'image2.jpg';

    nr = 0;




        img_billede = document.getElementById('billede');
        div_loader = document.getElementById('loader');
        div_navigation = document.getElementById('navigation');



    if (billeder.length > 0)
    {
        div_loader.innerHTML = loader_besked;
        div_navigation.style.display = "";
    }

    vis_billede(); // viser billedet (som er det første, da nr er lig 0)
}

function vis_billede()
{
    img_billede.src = './' + billeder[nr];
}


...
Avatar billede mclemens Nybegynder
13. august 2006 - 19:32 #15
^ - Hvor jeg så har denne mappe:
testfil.html
image.jpg
image2.jpg

... undskyld spam af din tråd marsk
Avatar billede mclemens Nybegynder
13. august 2006 - 19:44 #16
Tak for forklaringen på asp scriptet foresten thesurfer.
... Jeg koder p.t. kun php og for ikke at blande
det sammen har jeg ikke læst om asp ...
Avatar billede thesurfer Nybegynder
13. august 2006 - 20:12 #17
mclemens> Det var så lidt :-)

alle sammen>

Jeg har kigget og tænkt lidt på koden.. Det ville være mere logisk, ASP-IF-sætningen afgjorde om scriptet overhovedet skulle udskrives.

Lige nu, vil der som minimum stå følgende i filen, hvilket er når det ikke er en "gallery"-mappe:

<script type="text/JavaScript" language="JavaScript">
function initialiser()
{
    loader_besked = "Loader billede...";
    billeder = new Array();
}
</script>

og onload="initialiser()"


De ting burde ikke være i filen, når det ikke er en gallery-mappe.
Jeg kigger på det engang i aften, eller i morgen, og smider rettelsen herind.
Avatar billede mclemens Nybegynder
13. august 2006 - 20:25 #18
Eller måske nærmere derinde -> http://www.eksperten.dk/spm/725612 ...
Avatar billede mclemens Nybegynder
13. august 2006 - 20:28 #19
... ( så w13 får rettelserne )...
Avatar billede mclemens Nybegynder
13. august 2006 - 20:37 #20
Er rettelserne ikke nogenlunde

<%
if request.querystring("ShowPic") <> "" then
%>

<script type="text/JavaScript" language="JavaScript">
function initialiser()
{
    loader_besked = "Loader billede...";
    billeder = new Array();

<%


    ' ------------- KONTROLFIL ---------------

...


<body <%
if request.querystring("ShowPic") <> "" then
%>onload="initialiser()"<% end if %>>

... (nysgerrrig) ...
Avatar billede thesurfer Nybegynder
13. august 2006 - 20:37 #21
hehee.. Det er rigtigt.. jeg kom til at poste i det forkerte spørgsmål.. :-)
Avatar billede mclemens Nybegynder
13. august 2006 - 20:38 #22
Ok, kigger i den anden tråd :o)
Avatar billede marsk Nybegynder
15. august 2006 - 15:26 #23
okey... ^^

jeg holder mig til php ^^
synes der kunne være pænere med en content menu - istedet for små knappe i hjørnet af billedet, hvilket funker udemærket
men det er hele tiden det at ændre lidt på design og funktionalitet for at gøre det mere lækkert for brugerne ^^

Jeg siger mange tak for hjælpen
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