Avatar billede asphaj Nybegynder
11. december 2001 - 15:51 Der er 9 kommentarer og
1 løsning

target fra en iframe

Jeg har en form i en iframe, der både skal opdaterer iframen og den side den ligger i. Iframen er ikke noget problem, det er selve hovedsiden jeg ikke ved hvad jeg skal stille op med..... ved du det ? Submitknappen skal være et billede og koden er ala det her:

<a href=\"#\" onClick=\"top.hovedside.location=\'side.html\';    <<< her er problemet
      document.form1.submit();
      return false;\"><img src=\"submit.gif\" border=\"0\">ok</a>
Avatar billede jakoba Nybegynder
11. december 2001 - 17:49 #1
Idet du opdaterer hovedsiden bliver den iframe der ligger i hovedsiden revet ned og derefter genopbygget.

du opdaterer hovedsiden fra din iframe med:
    parent.location.reload(true);
og det er alt hvad du behøver at gøre.

medmindre det iframe-indhold der skal ligge bagefter ikke der den default-ifram side der er kodet i siden. Så skal der gøres mere ud af det.

mvh JakobA
Avatar billede randome Nybegynder
11. december 2001 - 17:58 #2
Hvad er en iFrame ?
Avatar billede jakoba Nybegynder
11. december 2001 - 18:05 #3
det er en \'Inner FRAME\' et areal på en webside hvori der bliver vist en helt anden side.
Avatar billede asphaj Nybegynder
11. december 2001 - 21:25 #4
hmmmm....... det er første gang jeg arbejder med iframe i det hele taget, men jeg havde håbet at jeg kunne køre iframen \"selvstændigt\", som hvis det var et almindeligt frameset, og iframen var en af to frames.
Det er netop begrundelsen for at vælge at bruge iframe, ellers er det lige meget, så kan jeg ligeså godt bruge noget som er bredere browserkompatibelt.

Så ja, jakoba, jeg har brug for noget kode der ikke loader iframen som default, altså det der gør mere ud af det!!!
Avatar billede jakoba Nybegynder
11. december 2001 - 22:00 #5
Istedetfor
    parent.location.reload(true);
som blot genviser den oprindelige side (og iframe) laver vi en lille script-sekvens:

    var nyparent = parent.location.href;
    var j;
    if ( (j=nyparent.indexOf(\"?\")) > 0 ) nyparent = nyparent.substr(0,j);
    nyparent += \"?params=\" +escape( \'streng af data der skal overføres\' );
//
// \'data der skal overføres\' er nødvendige data til at vælge den rigtige innerframe.
//
    parent.location.href = nyparent; // genhent hovedsiden.


Hovedsiden skal så have et script det henter de data og bruger dem.

    var params = self.location.href;
    var j;
    if ( (j=params.indexOf(\"?\")>0) ) {
        params = params.substr( j+1 );
        params = params.split(\"=\");
        if ( params[0] == \'params\' && params.length == 2 )
            params = unescape( params[1] );  // strengen med data
        else
            params = \"\"; // der var en forkert url-parameter
    } else
        params = \"\";  // der var ingen url-parameter
    //
    // nu kan du så bruge data i params til at rekreere din iframe.

mvh JakobA

Avatar billede asphaj Nybegynder
11. december 2001 - 23:24 #6
Puhha, det ser kompliceret ud!!!

Det jeg rent faktisk laver er et redaktørmodul i ASP til godkendelse af indlæg på et intranet. I dette modul skal der være en selectmenu med samtlige indlæg der skal godkendes og desuden mulighed for at rette i nogle overordnede oplysninger om det aktuelle indlæg.
Det er disse to funktioner, jeg ønsker placeret i et iframe, så de ikke nødvendigvis behøver at holde styr på alle de andre parametre der også sendes rundt i modulet, men umiddelbart synes jeg din løsning ser lige så kompliceret ud som hvis jeg bare placerede dem i en tabel !!!!

hmmm, så fordelen ved iframe er, at den ikke loader hovedsiden igen, når jeg sender fra iframen til iframen, altså sig selv..... er det rigtigt forstået ? For i det tilfælde vil jeg så placere selectmenuen på hovedsiden og kun de overordnede oplysninger i iframen..... det må være nemmest, ja indskyld jeg tænker højt, men jeg er ret nølende overfor det her iframe!!!

Og jakoba, hvis du svarer, så vil jeg ikke ulejlige dig mere, men bare poste dig dine meget velfortjente point!!!
Avatar billede jakoba Nybegynder
11. december 2001 - 23:33 #7
Jep, jeg tror også det vil være det nemmeste. eller \'gammeldags\' frames, men de passer vel ikke i designet :(

mvh JakobA
Avatar billede sevelsted Nybegynder
11. december 2001 - 23:51 #8
Du kan da bare lave scroll i en alm. frame, og så droppe iframen......

Eks.

<table>
<tr>
<TD HEIGHT=\"140\" WIDTH=\"140\" ID=\"auto\"><DIV style=\"OVERFLOW: auto; WIDTH: 100%; HEIGHT: 100%\" align=left>
Her en masse tekst - der bare fortsætter etc....<BR>Her en masse tekst - der bare fortsætter etc....<BR>
Her en masse tekst - der bare fortsætter etc....<BR>Her en masse tekst - der bare fortsætter etc....<BR>
Her en masse tekst - der bare fortsætter etc....<BR>Her en masse tekst - der bare fortsætter etc....<BR>
Her en masse tekst - der bare fortsætter etc....<BR>Her en masse tekst - der bare fortsætter etc....<BR>
Her en masse tekst - der bare fortsætter etc....<BR>Her en masse tekst - der bare fortsætter etc....<BR>
Her en masse tekst - der bare fortsætter etc....</DIV></TD>
</tr>
</table>

Mvh
Anders
Avatar billede brita Nybegynder
12. december 2001 - 00:24 #9
jo men som jakoba sigeer, så passer det ikke i designet
Avatar billede asphaj Nybegynder
12. december 2001 - 00:27 #10
tak jakoba, jeg er dig mycket taknemmelig....
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