12. marts 2001 - 13:44Der er
20 kommentarer og 1 løsning
Mouseover i 2 frames skift 4 billeder
Hej Jeg håber nogle kan give mig det sidste skub til at lave min kode færdig. Jeg har to frames 1. Hvor et billede skal skifte ved en mouseover i frame 2 2 i denne frame har jeg knapper der skal skifte ved mouseover og out (samt skifte billed i frame 1) Min kode i frame 1 er følgende: <html>
Jeg ved at jeg mangler en måde at fortælle framesettet at den skal skifte (parent.Ikon) men jeg kan ikke få det til at virke. Er der nogen der vil/kan hjælpe??
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
for at adressere over i en anden ramme skal du først og fremmest sørge for dine rammer har et navn. det gør du med en name=\"det_onskede_navn\" parameter i framekommadoerne i din frameset fil.
en tredie er situation hvor den side du prøver at adressere dig hen i ikke r hentet fra samme domæne. Javascript tillader ikke at sider hentet fra forskellige domæner udveksler data (det kunne hackere misbruge).
Når jeg rimmer linie 2 & 3 af i parent.frames.Ikon etc. skifter den helt ok i frame 1 men mouseover virker ikke i frame 2 hvis jeg tager \"rimmen\" af kommer fejlen med med \"ikke et objekt\". så er det måske der vi skal lede.????
Det treide du foreslår: kan du forklare nærmere. Alle sider ligger i samme mappe under samme sted. (siden er ikke flyveklar endnu)??????
du må have en side det ikke indeholder meget andet end dit frameset med de 5 rammer. En af <frame kommandoerne i den fil skal hvave name=\"Ikon\" det skal være den ramme du adresserer hen til fra en af de andre rammer I den frame der har navnet skal den fil der har de 2 billeder loades ind.
\"det tredie\" gik på at hvis du fx loader www.jubii.dk ind i en af rammerne kan du ikke med javascript rage ind i den ramme og aflæse sidens variable, selvom også adresseringen er helt korrekt. Det er forbudt. Da du har alle filer liggende i samme mappe er det ikke det der er problemet.
hvis ikke så tag og post dit frameset her og fortæl hvad de .html filer hedder hvor der skal være javascript til at skifte billeder, og hvad de .html filer hedder hvor der er <IMG kommandoer med billeder der skal skiftes.
den name=\"billedenavn\" parameter du skriver i <IMG kommandoen skal også have de rigtige store og små bogstaver.
du bruger et ord jeg ikke kender: \"... jeg rimmer linie ...\". Hvad betyder \"rimmer\"? er det (som jeg gætter) at skrive \"//\" forrest i linien så den bliver til en kommentar?
til debugging kan du evt bruge en midlertidig linie:
alert( \"billede \" +imageID \"skiftes i parent.frames.Ikon.document.images[imageID].src\" );
<p>Denne Web-side bruger rammer, og din browser understøtter ikke rammer.</p>
</body> </noframes> </frameset>
</html>
Her er et forenklet framesettet som jeg bruger til test se kommentar fra d. 12/3 21.54 hvor billedet skifter ok i øverste frame ved at føre musen hen over det billede der skal udløse det i frame 2 der er bare det problem at mouseover billedet ikke kommer frem i frame 2 ved mouse over. Alle mouseover billeder hedder KNLnavnpåbilleder alle mouseout billeder hedder KNnavnpå billede Alle billeder der skal vises i 1 frame og som bliver vist korrekt hedder Ikonnavnpå billede Jeg har chekket og ckekket der er ingen fejl i de billede benævnelser for så vil den jo kun vis tom billede og det gør den ikke.
rim er som du har gættet = // i global asa kan man bruge ordet til at slå en linie fra. Hvad hedder det rigtig ved du det??
Puu ha!! Det er ved at være en rigtig træls fejl?? Hej fra DSol
Det er vist ikke noget \"rigtigt\" navn, Vi laver vores navne udfra egen erfaring og ser om de går :). Udfra min erfaring kalder jeg det som oftest \"kommentere linien ud\".
Men vi er ved at komme videre. Jeg gætter lidt mere:
frame 1 har name=\"banner\" og src=\"DVelkommen.htm\" frame 2 har name=\"Ikon\" og src=\"DIkon.htm\" frame 3 har name=\"indgold\" og src=\"TestDindhold.htm\" frame 4 har name=\"Tekst\" og src=\"DTekst.htm\" frame 5 har name=\"BundTekst\" og src=\"DBundTekst.htm\" frame 6 har name=\"Info\" og src=\"DInfo.htm\"
i filen DVelkommen.htm ligger der kode til at billedskifte i ramme 2. Den kode giver stadig problemer. i filen DIkon.htm ligger der kode til at billedskifte i ramme 1. Den kode virker fint.
Jeg er ret sikker på mindst et af de gæt er gale. for så skulle koden: parent.frames.Ikon.document.images[imageID].src = eval(imageName + \".src\"); //parent.frames.Ikon.document.images[imageID2].src = eval(imageName2 + \".src\"); //parent.frames.Ikon.document.images[imageID3].src = eval(imageName3 + \".src\"); jo ligge i filen DIkon.htm. Gør den det?
Hvis et eller flere af mine gæt er gale så vær rar at korrigere.
Det rammeset kunne meget vel være klippet sammen fra flere filer. Er det det?
Hej Jacob Så er jeg klar igen familien skulle lige passes
Alle disse er ok nu frame 1 har name=\"banner\" og src=\"DVelkommen.htm\" frame 2 har name=\"Ikon\" og src=\"DIkon.htm\" frame 3 har name=\"indhold\" og src=\"TestDindhold.htm\" frame 4 har name=\"Tekst\" og src=\"DTekst.htm\" frame 5 har name=\"BundTekst\" og src=\"DBundTekst.htm\" frame 6 har name=\"Info\" og src=\"DInfo.htm\"
Rettelse Ramme 3 med filen TestDindhold.htm indeholder knapper der skal kalde på billede (som skal vises i frame 2 Dikon.htm) ved mouseover og det virker.
BEMÆRK DETTE Det er det eneste der ikke virker nu er!! I filen TestDindhold.htm kan den ikke hente sit mouseover billede.
Denne kode ligger i TestDindhold.htm parent.frames.Ikon.document.images[imageID].src = eval(imageName + \".src\"); //parent.frames.Ikon.document.images[imageID2].src = eval(imageName2 + \".src\"); //parent.frames.Ikon.document.images[imageID3].src = eval(imageName3 + \".src\");
hvis der i filen DIkon.htm står <IMG src=\"et_billede.jpg\" name=\"billed25\"> Der står <IMG SRC=\"../images/Blank.JPG\" NAME=\"Blank\" width=\"165\" height=\"110\" >
Det set ud til du har princippet på plads, så prøv at teste de indlysende fejlmuligheder:
check om billedfilen er stavet forkert, eller med bogstaver der er store eet sted og små et andet. check om billedfilen virkelig ligger i den mappe, og mo den relative sti er korrekt.
jeg er lidt ked af det valgte navn \"Blank\" det er lovlig tæt på et af javascripts reserverede ord. Prøv evt at ændre navnet til \"bblank\".
Alt er cheket og Blank er lavet om til bblank alt virker som før. mouseoverbilledet bliver stadig ikke kaldt ved andre test kan jeg indkredse det til at det er koden efter linien parent.frames.Ikon.document.images[imageID].src = eval(imageName + \".src\");
Det vil sige nedenstående linie der skal gøres noget ved, men hvad??
Jeg har prøvet med document.images[imageID2].src = eval(imageName2 + \".src\");
det fik jeg fejl ved nede i linien
onMouseOver=\"imageChange(\'bblank\',\'vis1\',\'one\',\'billede1on\')\" onMouseOut=\"imageChange(\'bblank\',\'vis0\',\'one\',\'billede1\')\"> og også ved onMouseOver
Det kan måske også være noget med linien function imageChange(imageID,imageName,imageID2,imageName2,imageID3,imageName3)
Min kode ser ud som følger i hele dokumentet Testindhold.htm <HTML> <HEAD> <TITLE>indhold</TITLE>
<base target=\"hovedramme\">
</HEAD>
<SCRIPT LANGUAGE=\"JavaScript\"> { vis0 = new Image(); vis0.src = \"../images/Blank.jpg\";
vis1 = new Image(); vis1.src = \"../images/IKonIndex.jpg\";
vis2 = new Image(); vis2.src = \"../images/IKonSog.jpg\";
vis3 = new Image(); vis3.src = \"../images/IKonRisRos.jpg\";
vis4 = new Image(); vis4.src = \"../images/IKonBestil.jpg\";
vis5 = new Image(); vis5.src = \"../images/IKonFrugt.jpg\";
billede1= new Image(); billede1.src = \"../images/KNindex.jpg\"; billede1on = new Image(); billede1on.src = \"../images/KNLindex.jpg\";
billede2= new Image(); billede2.src = \"../images/KNsog.jpg\"; billede2on = new Image(); billede2on.src = \"../images/KNLsog.jpg\";
billede3= new Image(); billede3.src = \"../images/KNrisros.jpg\"; billede3on = new Image(); billede3on.src = \"../images/KNLrisros.jpg\";
billede4= new Image(); billede4.src = \"../images/KNbestil.jpg\"; billede4on = new Image(); billede4on.src = \"../images/KNLbestil.jpg\";
billede5= new Image(); billede5.src = \"../images/KNfrugt.jpg\"; billede5on = new Image(); billede5on.src = \"../images/KNLfrugt.jpg\";
} function imageChange(imageID,imageName) { if (document.images){ parent.frames.Ikon.document.images[imageID].src = eval(imageName + \".src\");
bliver kald med: imageChange( \'bblank\', \'vis4\', \'four\', \'billede4on\')
det vil side der er 4 forskellige parametre i kaldet, men kun 2 i funktionen. Den går ikke. funktionen vil ikke kunne bruge de 2 sidste parametre for den får dem jo ikke.
function imageChange( imageID, imageName, imageID2, imageName2 ) { // nu er de to sidste parametre på plads.
if (document.images){ parent.frames.Ikon.document.images[imageID].src = eval(imageName + \".src\"); document.images[imageID2].src = eval(imageName2 + \".src\"); // nu adresseres den <img kommando der har name=(det der kom som parameter imageID2)
med eksemplet skulle det være name=\"fire\" . Men det sår der ikke i nogen af dine <img kommandoer.
I din første <img kommando står der name=\"one\" , og de to onmouse-event prøver begge at skifte et billed der har name=\"one\" . Det er helt som det skal være.
I din tredie <img kommando er der ikke nogen name=\"?\" parameter. Det skal der være. Ellers kan brovseren ikke finde billedet.
I din fjerde <img kommando står der name=\"tree\" ?
Gå alle dine <img kommandoer igennem og sørg for at de hedder \"one\", \"two\", \"tree\", \"four\", \"five\". Og sørg for at onmouse-eventene alle bruger det rigtige billedes navn som tredie parameter.
Og pas på med de billeder hvor du har stavet noget af billedfilens navn med store bogstaver. fx: <img border=\"0\" src=\"../images/KNrisros.JPG\" width=\"165\" height=\"28\"> oppe hvor du preloader billederne staver du det navn som: billede3.src = \"../images/KNrisros.jpg\"; på de fleste servere vil det blive set som 2 helt forskellige billedfiler, bare fordi du staver .JPG med store bogstaver det ene sted og .jpg med små bogstaver det andet sted. Derhjemme på din windows PC går det som regel godt, og det giver en masse problemer når siden så kommer ud i den \"virkelige verden\" der kræver man overholder reglerne :-)). Samme kommentar til femte billede \"../images/KNfrugt.JPG\" . Stav filnavne, mappenavne og javascript navne helt helt ens hver gang.
men med de ændringer tror jeg faktisk det vil virke. Jeg krydser fingre.
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.