Du kan i realiteten bare indsætte ``<script type="text/javascript"> detect(); </script>´´ i body-tagget, og funktionen vil så blive kaldt. Men om det er det der skal bruges, kommer lidt an på sammenhængen funktionen skal bruges i... Hvis det f.eks. er noget der skal kaldes lige så snart siden er loaded, er en måde at kalde det på, hvis det skal kaldes når der klikkes på en knap, er der en anden metode. Så det ville være rart, hvis du lige fortalte hvordan koden skal bruges.
Ydermere, bør dit script-tag se således ud : <script type="text/javascript"></script>
Jeg har et site med frames, og hvis nogen kommer uden om den side, som styrer frames - altså fx i stedet kommer ind på en af indholdssiderne - så skal scriptet (som ligger på alle indholdssider) sørge for, at den pågældende indholdsside bliver vist i sin kontekst, altså sammen med de andre frames.
Ja, ikke helst som jeg havde regnet med: Jeg troede, at det ville vise den pågældende side i den rette kontekst, men i stedet kalder det blot 'parent' filen, som så viser konteksten, men med startsiden og ikke den pågældende side. Men det er fint til at leve med. Så tak igen.
Nu ved jeg ikke hvor du har det der script fra, eller om du selv har lavet det, men hvis du vil have den til at "rette siderne" så den viser den pågældende side i den rette kontekst, er jeg sikker på vi godt kan finde ud af noget... Men det er selvfølgelig op til dig, om du bare vil leve med nuværende resultat eller hvordan.
Synes godt om
Slettet bruger
05. oktober 2008 - 17:02#15
Kan ikke huske, hvor jeg har fundet det - flere år siden. Men mon ikke løsningen er, at jeg skal lave en parentfil for hver indholdsfil, for man kan vel ikke 'styre' parentfilen ude fra. Men det er helt fint som det virker nu. Mvh
Nej, det kan, ret nemt, fikses ved at når "detect"-funktionen sender brugeren til den rigtige side, så sendes der et GET-request med a la '?frame=1&page=side2.htm' og ud fra det kan parentfilen så læse at det ikke er default-siden der skal åbnes i frame #1, men derimod side2.htm... Der er selvfølgelig mange måder at gøre det på. Det var bare én.
Har lige fikset noget kode sammen som sku virke - det er overhovedet ikke gennemtestet, dog. Først og fremmest, kunne jeg ikke se meningen i "detect"-funktionen, så jeg skrev den om. Og så har jeg lavet 2 nye funktioner som skal indsættes i frames.htm's header.
Den nye "detect"-funktion som skal erstatte den gamle:
function detect() { framesetpage = "frames.htm"; // the parent file subpage=window.location.href; if (top.location.href==window.location.href) {parent.location.href=framesetpage+"?page="+subpage}; }
Og her er det kode du skal indsætte i headeren på frames.htm. Du skal forresten huske at ændre værdien på "frameID"-variablen til det id din frame/iframe faktisk har, og ikke `iframeOne` som jeg bare har skrevet...
<script type="text/javascript"> function getURLVar(urlVarName) { // divide the URL in half at the '?' var urlHalves = String(document.location).split('?'); var urlVarValue = ''; if(urlHalves[1]){ //load all the name/value pairs into an array var urlVars = urlHalves[1].split('&'); // loop over the list, and find the specified url variable for(i=0; i<=(urlVars.length); i++){ if(urlVars[i]){ // load the name/value pair into an array var urlVarPair = urlVars[i].split('='); if (urlVarPair[0] && urlVarPair[0] == urlVarName) { // i found a variable that matches, load it's value into the return variable urlVarValue = urlVarPair[1]; } } } } return urlVarValue; }
function checkFrameDes() { var frameID = "iframeOne" // the ID of the frame/iframe you want to manipulate var pageVar = getURLVar("page"); if(pageVar != "") { document.getElementById(frameID).src = pageVar; } } window.onload = function () { checkFrameDes(); } </script>
function detect() { var framesetpage = "frames.htm"; // the parent file var subpage=window.location.href; if (top.location.href == window.location.href) parent.location.href = framesetpage+"?page="+subpage; }
Synes godt om
Slettet bruger
05. oktober 2008 - 20:57#21
Super, jeg har ikke mere tid i aften, men kigger på det i morgen.
function detect() { var framesetpage = "frames.htm"; // the parent file var subpage=window.location.href; // the page opened in the iframe/frame if (top.location.href == window.location.href) top.location.href = framesetpage+"?page="+subpage; }
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.