Avatar billede nylle76 Nybegynder
25. maj 2007 - 00:06 Der er 5 kommentarer og
1 løsning

Statisk/fastlåst/altid synlig frame

Hej

Jeg er kørt fast! Min opgave består i at fastlåse en frame således at info og billede om en valgt medarbejder altid er synligt på siden - også selvom der scrolles.

Jeg har fundet inspiration på følgende side:
http://javascriptkit.com/javatutors/static3.shtml
og kan sagtens få et statisk element til at virke på en enkelt side.

Mit problem er at det er en frame der skal låses. Jeg har følgende udgangspunkt - employees_da.html
<HTML>
<frameset id="fset" cols="382,196" border="0">
  <frameset rows="30,*">
    <frame name="rtop" src="heading.html" scrolling="no">
    <frame name="employeeList" src="empList.html" scrolling="yes" >
  </frameset>
  <frame name="employeeDetail" scrolling="no" noresize="noresize" target="rtop" src="employeeRight.html">
<HEAD></HEAD>
<BODY></BODY>
</frameset>
</HTML>

Det er framen med name=employeeDetail der altid skal være synlig.

Ovenstående dokument (employees_da.html) refereres som en iframe i en tabel på en anden side der også indeholder menu osv:
<TABLE><TR><TD><IFRAME frameBorder=0  id="id1" name="employees" src="employees_da.html"  fullPage="true"></IFRAME></TD></TR></TABLE>       

Jeg har ikke mulighed for at ændre så meget i den overordnede frame struktur. Mit spørgsmål er så om dette overhovedet kan lade sig gøre? Hvis det kan er der så nogen der har en ide til hvordan jeg kommer videre?

Håber virkelig nogen kan hjælpe mig :-)
Mvh Jan
Avatar billede jamiros Novice
25. maj 2007 - 01:02 #1
Tror du kan tilpasse dette script :-)
http://www.dynamicdrive.com/dynamicindex4/logo.htm
Avatar billede jamiros Novice
25. maj 2007 - 01:04 #2
eller http://www.dynamicdrive.com/dynamicindex1/staticmenu.htm - der er flere muligheder på sitet
Avatar billede jamiros Novice
25. maj 2007 - 01:11 #3
Jeg var vidst lige hurtig nok...så du skal nok have fat i noget JS eller serverside (ASP/PHP) hvis det skal blive på siden når du arbejder med frameset. Hvis det er iFrame, så kan du tjekke www.berens.dk. Det site arbeder med at skifte flere iFrame på samme tid via JS. Håber det hjælper lidt :-)
Avatar billede nylle76 Nybegynder
25. maj 2007 - 08:27 #4
Hej Jamiros
Mange tak for dine svar - jeg vil kigge på muligheder i løbet af de næste par dage.
Min tankegang til at løse problemet har været at jeg skal have fat i parent sidens koordinater for at bestemme child framens navigation.
Jeg skal nok følge op på spørgsmålet
Avatar billede roenving Novice
26. maj 2007 - 23:51 #5
En iframe kan placeres inde i andre elementer, f.eks. et div, der er placeret efter de principper, jamiros henviser til ...

-- jeg ville kun finde på at eftersøge det, hvis det var mission-critical, hvilket jeg har svært ved at se, at det nogensinde kan blive, med det scenarie, du beskriver !-)
Avatar billede nylle76 Nybegynder
27. maj 2007 - 19:51 #6
Så er problemet løst.
Jeg tog udgangspunkt i scriptet på siden http://javascriptkit.com/javatutors/static3.shtml og udførte følgende steps.

1. Det indhold der skulle scrolle med nedad pakkede jeg ind i span tags som beskrevet på ovenstående link. Indholdet var på frame name="employeeDetail (employeeRight.html). Div tags kan også bruges.
2. Jeg placerede mit java script i samme frame. 
3. Jeg skulle referere to niveau op af træet for at få koordinaterne til vinduet på øverste niveau. For at gøre dette måtte jeg sætte window.parent.parent. foran koordinat og body referencerne i scriptet.

Scriptet fra ovenstående link efter min tilretning vil derfor se ud som beskrevet nedenfor:
<script type="text/javascript">
//define universal reference to "staticcontent"
var crossobj=document.all? document.all.staticcontent : document.getElementById("staticcontent")

//define reference to the body object in IE
var iebody=(window.parent.parent.document.compatMode && window.parent.parent.document.compatMode != "BackCompat")? window.parent.parent.document.documentElement : window.parent.parent.document.body

function positionit(){
//define universal dsoc left point
var dsocleft=window.parent.parent.document.all? iebody.scrollLeft : pageXOffset
//define universal dsoc top point
var dsoctop=window.parent.parent.document.all? iebody.scrollTop : pageYOffset

//if the user is using IE 4+ or Firefox/ NS6+
if (window.parent.parent.document.all||window.parent.parent.document.getElementById){
crossobj.style.left=parseInt(dsocleft)+5+"px"
crossobj.style.top=dsoctop+5+"px"
}
}
setInterval("positionit()",100)
</script>

Der er måske noget copyright på benyttelse af scriptet (ikke helt sikker endnu).
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