Avatar billede rkhdk Nybegynder
27. november 2003 - 16:24 Der er 28 kommentarer og
1 løsning

åbne ramme side, uden om index.htm

jeg ønsker en løsning på et ramme problem..

En hjemmeside er opbygget af rammer (logo, menu, og indhold) alle links åbner i rammen indhold.
problemet er så når man søger efter noget og hjemmesiden bliver vist med link til en .htm fil (eks: www.domæne.dk/indhold/test.htm )
og da test.htm er lavet til at blive åbnet i en ramme så ser den underliger ud, plus man få ikke menu'en og logo'et frem.

så det jeg skal bruge er et eller andet script der kan lægges i htm filen som automatisk henter index.htm og åbner siden (eks: trykker på ../indhold/test.htm, denne side åbner så hvor logo og menu også er med)
så test.htm henter index.htm og lægger sig i rammen indhold.

så når ../indhold/test.htm åbnes så få man også logo og menu med uden at det ligger i test.htm

jeg ved ikke hvilke server sprog der understøttes på deres server, så det skal gerne være noget let at lægge ind (siden indeholder ca 100 html sider), så hvis man kan nøjes med en kode i toppe af html'en så ville det være fint.
men alle foreslag er velkommene (andet end af lave hele hjemmesiden om)
Avatar billede rkhdk Nybegynder
27. november 2003 - 16:58 #1
denne kategori passer nok lidt bedre, end programerin | generelt ;o)
Avatar billede jakoba Nybegynder
27. november 2003 - 18:14 #2
Du kan bruge koden herfra: http://hjem.get2net.dk/Jakob.Aggernaes/temp/expframe.html
benærk at der skal lidt script i både dit frameset og de sider der hentes ind i framesettet.
Avatar billede rkhdk Nybegynder
27. november 2003 - 18:17 #3
så jeg skal lægge

<script language='javascript'><!-- // indsæt scriptet øverst i head

function thisPage () { // undgå at denne side loades fra cashe til indre ramme
  // url format (fra  http://www.faqs.org/rfcs/rfc1808.html )
  //    <scheme>://<net_loc>/<path>;<params>?<query>#<fragment>
  var parsUrl = location.href;
  parsUrl = parsUrl.split( "#" );
  parsUrl[0] = parsUrl[0].split( "?" );
  parsUrl[0][1] = (parsUrl[0].length>1)?parsUrl[0][1]+"&n=0":"n=0";
  parsUrl[0] = parsUrl[0].join( "?" );
  return parsUrl.join( "#" );
}; //end thisPage () -> url

if ( !parent.loadedFrame ) { // hvis jeg ikke ligger i min ramme
  window.loadedFrame=true;        // så skriv rammen (pas på ' og ")
  document.write( '<frameset cols="25%,*">'
                +'  <frame name="minMenu" src="expframemenu0.html">'
                +'  <frame name="minMain" src="' +thisPage() +'">'
                +'</frameset>'
                +'<noframes>'  );
};

// --> </script>

itoppen af alle sider (tilrette expframemenu0.html til min)
og hvad mere?
Avatar billede jakoba Nybegynder
27. november 2003 - 18:22 #4
i frameset filen søger du for en variabel loadedFrame der er sat til true.
Avatar billede rkhdk Nybegynder
27. november 2003 - 18:23 #5
hvis min forside hedder index.html og den frame som alle links åbnes i hedder Main

med frameset filen, mener du så index.html?
Avatar billede rkhdk Nybegynder
27. november 2003 - 18:24 #6
hvis det hjælper så er det denne side der skal bruge det

www.projekt-dbj.dk
Avatar billede rkhdk Nybegynder
27. november 2003 - 18:28 #7
hvad så når siden ligger i undermapper?

eks:

www.domæne.dk/bla/blabla/blablabla/test.htm

skal jeg så skrive www.domæne.dk/index.html under +'  <frame name="minMenu" src="expframemenu0.html">' ?
Avatar billede jakoba Nybegynder
27. november 2003 - 18:30 #8
din frameset fil er den med kommandoen <frameset i, dvs den der hentes når der ikke er brug for at ændre noget. Såvidt jeg kan se hedder den 'Projekt DBJ.html'; men det kan godt være det blot er et navn min 'save as' funktion laver til den.
Avatar billede rkhdk Nybegynder
27. november 2003 - 18:34 #9
der er index.htm der indeholder de frames, og der ikke nogen der hedder projekt dbj.html så det er din save as :)
Avatar billede jakoba Nybegynder
27. november 2003 - 18:35 #10
med undermapper skal du blot følge reglerne for addressering fra det sted hvor filen der skriver framesettet ligger.

i SRC= og HREF= attributter skal det enten være en relativ adresse, eller også skal HTTP:// med.  Det er kun i adresselinien du kan starte med www.domæne... og stole på det virker.
Avatar billede rkhdk Nybegynder
27. november 2003 - 18:38 #11
fandt en af de første versioner af index.html

og det eneste jeg kan se med frame er disse linjer

        <tr>
          <td width="100%">
            <table border="0" width="100%" cellspacing="0" cellpadding="0" bgcolor="#ffffff">
              <tr>
                <td width="124" height="450" valign="top" background="nyheder_bg.jpg" style="background-repeat: no-repeat;">
                  <table border="0" width="100%" cellspacing="0" cellpadding="3">
                    <tr>
                      <td width="100%"></td>
                    </tr>
                    <tr>
                      <td width="100%" valign="top">
                      <IFRAME NAME="news" ALLOWTRANSPARENCY="true" FRAMEBORDER=0 border="10" scrolling=no WIDTH="118" HEIGHT="300" SRC="nyheder.htm" style="margin-top: 20px" target="main"></IFRAME></td>
                    </tr>
                  </table>
                </td>
                <td background="right_border.gif" width="579" hight="100%" valign="top" style="background-repeat: repeat-y;">
                  <table border="0" width="100%" height="100%">
                    <tr>
                        <td width="100%" height="100%"><IFRAME NAME="main" FRAMEBORDER=0 border="10" WIDTH="725" HEIGHT="100%" SRC="Front.htm"></IFRAME>
                      </td>
                    </tr>
                  </table>
                </td>
              </tr>
            </table>
          </td>
        </tr>
        <tr>
          <td width="100%" height="21" background="bottom.gif" style="background-repeat: repeat-x;">
            <p align="right"></p>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>

så hvor skal det variabel loadedFrame sætte ind?

jeg har ikke rodet meget med framse og tabeller :(
Avatar billede rkhdk Nybegynder
27. november 2003 - 18:40 #12
framse => frames ;o)
Avatar billede jakoba Nybegynder
27. november 2003 - 19:02 #13
Ups. så må jeg stå af.  du snakker on Indlejrede Rammer  (kommando <IFRAME )
og min metode er kun praktisk til gammeldags rammer  (kommando <FRAMESET )

Jeg kender ikke nogen pålidelig måde gøre det samme for Indlejrede rammer. Sorry
Avatar billede rkhdk Nybegynder
27. november 2003 - 19:11 #14
oki, så håber jeg der er en anden der kan ;o)
Avatar billede rkhdk Nybegynder
28. november 2003 - 18:47 #15
ingen andre?
Avatar billede roenving Novice
29. november 2003 - 04:59 #16
Har du kigget på min løsning ?-)

http://roenving.users.whitehat.dk/WD1ResizeTilBillede.html

-- kig på adresselinjen efter du er kommet ind og se så forklaring/kode ved at klikke på teksten nede til venstre om framing ...
Avatar billede rkhdk Nybegynder
30. november 2003 - 13:05 #17
roenving => nej, jeg har ikke set din løsning før nu ;o)
jeg prøver den imorgen
Avatar billede rkhdk Nybegynder
01. december 2003 - 08:00 #18
roenving => oki.. nu har jeg prøvet dit script, men kan ikke rigtigt få den til at virke..

i min index.htm har jeg lagt dette under <HEAD>
<script language="javascript" type="text/javascript">
  function loadSource(){
  if (location.search!=""){
    src=unescape(location.search.substring(1));
    top.frames['main'].location.href=src;
  }}
</script>

og under body onload="loadSource();">

på siderne har jeg lagt

<script language="javascript" type="text/javascript">
  if(top.location==window.location){top.location.replace(top.location.href.substring(0,top.location.href.indexOf("http://www.projekt-dbj.dk")+25)+"index.htm?"+escape(location.pathname))}
</script>

jeg har så lavet en test her:
www.projekt-dbj.dk/test/news.htm

den loader rammerne, men den henter ikke news.htm ind i rammen main som der var meningen..

hvad har jeg gjort galt?
Avatar billede roenving Novice
01. december 2003 - 13:05 #19
Den er 5 tegn længere pga. /test !-)

-- prøv at sætte 30 ind i stedet for 25 !o]
Avatar billede rkhdk Nybegynder
01. december 2003 - 17:36 #20
jeg fik ikke meget tid til at se på det, så jeg har lagt den op på min se..

www.krogh-hansen.dk/dbj_test/sitemap.htm

på index.htm ligger

<script language="javascript" type="text/javascript">
  function loadSource(){
  if (location.search!=""){
    src=unescape(location.search.substring(1));
    top.frames['main'].location.href=src;
  }}
</script>

og den onload=

på sitemap.htm ligger

<script language="javascript" type="text/javascript">
  if(top.location==window.location){top.location.replace(top.location.href.substring(0,top.location.href.indexOf("http://www.krogh-hansen.dk/dbj_test")+35)+"/index.htm?"+escape(location.pathname))}
</script>

men den vil stadig ikke
Avatar billede rkhdk Nybegynder
01. december 2003 - 17:46 #21
fandt fejlen.. den onload="loadSource();"> lå forkert ;o)

lav et svar tak
Avatar billede rkhdk Nybegynder
01. december 2003 - 18:24 #22
har lige et spm til dit "åbner billede i fuld størrelse" script..
hvordan ændre jeg titlen, når man åbner billede i nyt vindue.. der står jo nu "Resize til billede"

men hvad nu hvis jeg vil have ny title tekst på hver billede?

eks:
billede 1
billede 2
osv..
Avatar billede rkhdk Nybegynder
01. december 2003 - 20:25 #23
har fundet en fejl ved dit script..

hvis jeg skriver:

<script language="javascript" type="text/javascript">
  if(top.location==window.location){top.location.replace(top.location.href.substring(0,top.location.href.indexOf("http://www.krogh-hansen.dk/dbj_test")+35)+"/index.htm?"+escape(location.pathname))}
</script>

så virker www.krogh-hansen.dk/dbj_test/sitemap.htm
men http://krogh-hansen.dk/dbj_test/sitemap.htm virker ikke

og hvis jeg retter:
<script language="javascript" type="text/javascript">
  if(top.location==window.location){top.location.replace(top.location.href.substring(0,top.location.href.indexOf("http://.krogh-hansen.dk/dbj_test")+32)+"/index.htm?"+escape(location.pathname))}
</script>

så virker http://krogh-hansen.dk/dbj_test/sitemap.htm men så virker www.krogh-hansen.dk/dbj_test/sitemap.htm ikke længre
Avatar billede roenving Novice
01. december 2003 - 23:57 #24
-- du kan uden fare ændre til:

<script language="javascript" type="text/javascript">
  if(top.location==window.location){top.location.replace(top.location.href.substring(0,top.location.href.indexOf("krogh-hansen.dk/dbj_test")+24)+"/index.htm?"+escape(location.pathname))}
</script>


-- og hvis du kigger på mit script, er det relativt nemt, at medsende også en title:

  <script language="javascript" type="text/javascript">
    function popWin(file,titel){
      newWin=window.open("","ResizeBillede","width=300,height=200,status=no");
      txt='<ht'+'ml><he'+'ad><ti'+'tle>'+titel+'<\57ti'+'tle><scri'+'pt language="javascript" type="text/javascript">';
      txt+='function resPic(){h=document.images[0].scrollHeight;w=document.images[0].scrollWidth;window.resizeTo(w+6,h+32);}<\57scri'+'pt><\57he'+'ad>';
      txt+='<bo'+'dy style="overflow:hidden;border:0px;margin:0px"><i'+'mg src="'+file+'" style="top:0px;left:0px;border:0px;" onload="resPic();"><\57bo'+'dy><\57ht'+'ml>';
      newWin.document.write(txt);
      newWin.document.close();
    }
  </script>
Avatar billede roenving Novice
01. december 2003 - 23:58 #25
'Fejlen' er selvfølgelig, at der skal være fuld genkendelse, fordi indexOf (heldigvis !-) er ret rigid med sine genkendelser ...

-- og velbekomme '-)
Avatar billede rkhdk Nybegynder
02. december 2003 - 05:36 #26
jeg ved godt at titlen ligger i ><ti'+'tle>'+titel+'<\57ti'+'tle>
men hvad nu hvis der skal være en anden tekst på hver billed?

hvis nu billede 1 skal have titlen: togvogn
og billede 2 skal have titlen: skurvogen
og billede 3 skal have titlen: monstervogn ;o)
Avatar billede roenving Novice
02. december 2003 - 13:36 #27
Udfra den sidste jeg har skal kaldene se sådan ud:

onclick="popWin('billede_1.gif','togvogn')"
onclick="popWin('billede_2.gif','skurvognen')"
onclick="popWin('billede_3.gif','monstervogn')"
Avatar billede rkhdk Nybegynder
02. december 2003 - 16:19 #28
tak
Avatar billede roenving Novice
02. december 2003 - 16:32 #29
-- og tak for points ;~}
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
Kurser inden for grundlæggende programmering

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