Avatar billede ahv Nybegynder
02. oktober 2002 - 10:38 Der er 8 kommentarer og
1 løsning

Frameset laver bøvl

Jeg har et javascript som sørge for at jeg kan åbne en side via en selectmenu i en Iframe !
Derudover har jeg et javascript som scroller indholdet i min iframe enten op eller ned alt efter hvilken man trykker på !

Dette virkede også fint indtil jeg ville sætte min side op i et chromless window...

Dette chrommless window indeholder et Frameset og det er det som giver mig mit problem som jeg vil forklare her:


Hvis jeg sætter min side i et frameset (som chromless også består af) for jeg fejlen når jeg prøver at skifte side :

error : parent.frames[...] er ikke er objekt

samme fejl for jeg når jeg prøver at scrolle.

Det virker helt fint hvis jeg bare har min side normalt, altså uden chromless window.

Jeg har dog fundet ud af at hvis jeg laver et normalt frameset og sætter siden ind i den og giver framen navnet som siden fra select menuen skulle åbne i åbner den i hele den frame !

Altså må jeg kunne sige at den ikke finder iframens navn, men kun det framenanvn den opholder sig i og der opstår fejlen !

Dette var nok en lang indviklet smørge, så i er velkommen til at skrive hvis der er noget i ikke forstår !


På Forhånd Tak
Alexander Holm Viborg
Avatar billede jakoba Nybegynder
02. oktober 2002 - 11:04 #1
brug istedet:
    parent.document.frames[...]
og ja det er noget fis med iframes at de ikke kan adresseres helt som alm frames.
    en ganske god (og nem) løsning er helt at ignorerer rammestrukturen og sige:
    window.open( "nyside.html", "rammeNavn" );
så finder javascript selv en ramme (eller iframe, eller vindue) med det navn og smider siden ind i det. Sørg blot for at der ikke findes andre rammer med det navn.
Avatar billede ahv Nybegynder
02. oktober 2002 - 11:21 #2
jakoba >> Enten sætter jeg det ikke rigtigt ind ellers virker det ikke !

Den siger der er fejl i denne linie:

else {parent.frames[target].location=loc;};

og denne :

parent.text.scrollBy(0,15)

Det virker dog fint hvis ikke min side er i et frameset, men blot i dens tables med mine iframes !

Skriver jeg dog at navnet på min frame er "text" som navnet på min iframe er scroller den altså hele den frame og skifter side i den frame !

Hvis det er kan jeg evt. sende dig koden så du kan se det ?
Avatar billede jakoba Nybegynder
02. oktober 2002 - 11:31 #3
hvad med at læse svaret.
else {parent.document.frames[target].location=loc;};
Avatar billede ahv Nybegynder
02. oktober 2002 - 19:51 #4
jakoba >>

Undskyld, jeg havde slettet .document, fra min kode da det ikke virkede !

Altså den siger bare nu :

parent.document.frames[...] er ikke er objekt
Avatar billede jakoba Nybegynder
02. oktober 2002 - 20:01 #5
kan du lægge et link?
Avatar billede ahv Nybegynder
02. oktober 2002 - 22:23 #6
Her kan du se at det virker:

http://www.blomme.h4f.dk/index4.html

Så snart det kommer ind i chromlesswindow, som består af et frameset for jeg fejlen:
parent.document.frames[...] er ikke er objekt

se det her:

http://www.blomme.h4f.dk/index.html

Du skal bare vælge "valg 1" i selectmenuen!
Avatar billede jakoba Nybegynder
02. oktober 2002 - 22:36 #7
jep, nu fatter jeg det:

<html>

<head>
<script>
<!--
function land(ref, target)
{
lowtarget=target.toLowerCase();
if (lowtarget=="_self") {window.location=loc;}
else {if (lowtarget=="_top") {top.location=loc;}
else {if (lowtarget=="_blank") {window.open(loc);}
else {if (lowtarget=="_parent") {parent.location=loc;}
else {document.frames[target].location=loc;};  // RETTET LINIE

}}}
}
function jump(menu)
{
ref=menu.choice.options[menu.choice.selectedIndex].value;
splitc=ref.lastIndexOf("*");
target="";
if (splitc!=-1)
{loc=ref.substring(0,splitc);
target=ref.substring(splitc+1,1000);}
else {loc=ref; target="_self";};
if (ref != "") {land(loc,target);}
}
//-->
</script>


</head>

<form action="choice"><select name="choice" onChange="jump(this.form)">
<option selected>MENU</option>
<option value="index4.html*text">Valg 1</option>

</select>
</form>

<iframe height="300" width="290" src="about.html" name="text" frameborder="0" scrolling="yes"></iframe>

I den rettede linie har jeg fjernet 'parent.' mere behøves der ikke.
Det burde egentlig også fjernes på din oprindelige side, men der går det godt fordi parent ikke har nogen frameset fil at pege op på, og istedet peger på vinduet selv.

mvh JakobA
Avatar billede ahv Nybegynder
02. oktober 2002 - 22:42 #8
Hvor skønt, tak Jakob !

Nu her jeg siddet med det problem i en uge, og nu er det endelig løst, du er fanme den bedste Jakob !

Forresten, ved ikke om du kan huske det, men jeg skrev for længere tid siden til dig ang. nogle spørgsmpl om datalogi, hvor du svarede på dem !

Jeg fik forresten 10 for den opgave, men jeg fik aldrig sagt tak for dine svar, så det vil jeg så lige benytte lejligheden til !

Tak for hjælpen, både nu og der ! :)
Avatar billede jakoba Nybegynder
02. oktober 2002 - 22:48 #9
tillykke da :-)
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

IT-JOB

Jyske Bank

AI-udvikler

Politiets Efterretningstjeneste

Data engineer til PET

Capgemini Danmark A/S

AI Data Architect

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger en IT-supporterelev til Lokal IT på Flyvestation Karup