Avatar billede peterterkildsen Nybegynder
29. juni 2001 - 14:49 Der er 14 kommentarer og
1 løsning

Opdatering af Iframe fra andet vindue

Jeg har en side, som indeholder en IFRAME. Jeg vil gerne have mulighed for at indsætte HTML i denne IFRAME, men koden skal overføres fra et andet vindue. Jeg kan sagtens få tilføjet HTML til IFRAME, men mit problem består i, at jeg ikke kan få fat i det indhold, som står i IFRAME\'n i forvejen. Dermed bliver det ikke muligt for mig, at appende HTML fra de vinduer. Lidt svært at forklare, men jeg håber, at i forstår.

mit script ser således ud:
    function writeToWindow() {
        var newContent
        var oldContent
       
        oldContent = opener.document.frames(\"text_edit\").document.innerHTML
        document.write(oldContent)
       
        newContent += \"<body>\\n<font face=arial size=2><b>Indsæt tabel</b><br>\\n\"
        newContent += \"<table width=\\\"100%\\\">\\n<tr>\\n<td>\\n\"
        newContent += \"Indtast antal rækker:</td>\\n\"
        newContent += \"</body></html>\\n\"

        newContent = oldContent + newContent
        opener.document.frames(\"text_edit\").document.write(newContent)
        }
Avatar billede jakoba Nybegynder
29. juni 2001 - 15:41 #1
den der linie
      document.write(oldContent)
er da vis ikke meningen.

du giver aldrig newconten en initialværdi.

hvad med blot at sideg:

    function appendToWindow() {
        var newContent = \"<body>\\n<font face=arial size=2><b>Indsæt tabel</b><br>\\n\"
                      +  \"<table width=\\\"100%\\\">\\n<tr>\\n<td>\\n\"
                      +  \"Indtast antal rækker:</td>\\n\"
                      +  \"</body></html>\\n\";
      opener.document.frames(\"text_edit\").document.innerHTML += newContent;
        };

mvh JakobA
Avatar billede peterterkildsen Nybegynder
29. juni 2001 - 16:07 #2
nej, document.write(oldContent) var blot ment som en debugging tingest...

Med dit forslag, så har jeg da fået kortet lidt ned på længden af mit script, men problemet er der stadig. Jeg kan stadigvæk sagtens skrive til IFRAME, men mit problem er, at jeg overskriver alt, hvad der står i Framen. Derfor vil jeg gerne have det gamle indhold med over, men når jeg gør det, så skriver den \"undefined\" i stedet for det indhold, som stod i framen.
Avatar billede peterterkildsen Nybegynder
29. juni 2001 - 16:08 #3
Sådan ser koden ud nu:
<SCRIPT LANGUAGE=\"JavaScript\">
   
function writeToWindow() {
        var newContent = \"<body>\\n<font face=arial size=2><b>Indsæt tabel</b><br>\\n\"
                      +  \"<table width=\\\"100%\\\">\\n<tr>\\n<td>\\n\"
                      +  \"Indtast antal rækker:</td>\\n\"
                      +  \"</body></html>\\n\";
        opener.document.frames(\"text_edit\").document.write(opener.document.frames(\"text_edit\").document.innerHTML += newContent);
        }
</SCRIPT>   
Avatar billede jakoba Nybegynder
29. juni 2001 - 16:21 #4
har du prøvet med precis den sætning der står? uden at bruge document.write overhovedet.
Avatar billede peterterkildsen Nybegynder
29. juni 2001 - 16:25 #5
jep, og det giver faktisk et dårligere resultat, da jeg dermed overhovedet ikke kan overføre indhold til IFRAME længere....problemet består i, at jeg ikke kan modtage indhold fra IFRAME...jeg kan sagtens skrive til det...
Avatar billede jakoba Nybegynder
29. juni 2001 - 16:38 #6
kun småændringer, men prøv:

    function writeToWindow() {
        var newContent;
        var oldContent;
     
        oldContent = opener.document.frames[\"text_edit\"].document.innerHTML;
alert(oldContent);  // kun til debugging, smid linien væk bagefter.
        newContent = oldContent;
        newContent += \"<body>\\n<font face=arial size=2><b>Indsæt tabel</b><br>\\n\"
                      +  \"<table width=\\\"100%\\\">\\n<tr>\\n<td>\\n\"
                      +  \"Indtast antal rækker:</td>\\n\"
                      +  \"</body></html>\\n\";
alert(newContent);  // kun til debugging, smid linien væk bagefter.
        opener.document.frames[\"text_edit\"].document.open();
        opener.document.frames[\"text_edit\"].document.write(newContent);
        opener.document.frames[\"text_edit\"].document.close();
        }
Avatar billede jakoba Nybegynder
29. juni 2001 - 16:42 #7
en teori:
        oldContent = opener.document.frames[\"text_edit\"].document.innerHTML.toString();
Avatar billede peterterkildsen Nybegynder
29. juni 2001 - 16:48 #8
nope, får stadig samme fejl....prøv selv at kigge på http://jp.portaltjenesten.dk/nytest.php - det er ikonet yderst til højre.
Avatar billede jakoba Nybegynder
29. juni 2001 - 17:00 #9
desværre. jeg får fejl 404 på den adresse:
Not Found
The requested URL /nytest.php was not found on this server.
Avatar billede peterterkildsen Nybegynder
29. juni 2001 - 17:05 #10
Avatar billede jakoba Nybegynder
29. juni 2001 - 17:12 #11
i din save funktion bruges der hele tiden

var strHTML = document.frames(\"text_edit\").document.body.innerHTML;

dve med  .body  i adressen.
Kunne det være det du mangler der du ønsker at hente innerHTML

        oldContent = opener.document.frames[\"text_edit\"].document.body.innerHTML;
alert(oldContent);  // kun til debugging, smid linien væk bagefter.
Avatar billede jakoba Nybegynder
29. juni 2001 - 17:16 #12
Det ser forresten ret smart ud med den side :)
Avatar billede peterterkildsen Nybegynder
29. juni 2001 - 17:17 #13
YES!!!!!!!

Nogle gange kan man sq heller ikke se skoven for bare træer....det var rart, at der var en med friske øjne, der kunne hjælpe! Tak for hjælpen
Avatar billede peterterkildsen Nybegynder
29. juni 2001 - 17:19 #14
>> jakoba

Den er også ret fancy, synes jeg selv :-) Bare vent til jeg bliver færdig (engang i år 2005 :-)
Avatar billede jakoba Nybegynder
29. juni 2001 - 17:23 #15
:-))
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