Avatar billede hansjacob Nybegynder
19. september 2000 - 18:28 Der er 3 kommentarer og
1 løsning

kalde funktion i en iframe

Hej.

Jeg har lavet et script, der kalder en funktion i en iframe, når musen køres hen over et link, men nå funktionen kaldes sletter den alle html koderne incl. javascriptet med det resultat, at nå jeg kalder en ny funiton (eller den samme igen) kommer der en fejlmeddelelse.

Hvad er det der er galt???


Her er koderne til mainpage\'en:

<html>

<head>
<title>QP webdesign</title>
<META name=\"title\" content=\"QP webdesign\">
<META name=\"description\" content=\"QP webdesign, firmabeskrivelse: Læs om konceptet, kvallifikationer, priser mm\">
<META name=\"keywords\" content=\"webdesign php html\">
<link REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"styleformainpage.css\" TITLE=\"styles\">
<script language=\"javascript\">
<!--
function skriv(txt) {
    parent.text.skriv(txt);
}
function stop(){
    parent.text.skriv(\'\');
}
-->
</script>
</head>

<body background=\"background.JPG\">
<iframe marginwidth=\"50\" align=\"right\" name=\"main\" height=\"75%\" width=\"65%\" framespacing=\"100\" frameborder=\"no\" scrolling=\"no\"  src=\"indhold.php3\"></iframe>
<table width=\"100%\" height=\"100%\">
<tr>
    <td valign=\"top\">
<br><br>
<a onmouseover=\"java script:skriv(\'Tilbage til QP webdesigns forside\')\" onmouseout=\"java script:stop()\" href=\"indhold.php3?side=forside\" target=\"main\">Forside</a><br><br><br>
<a onmouseover=\"java script:skriv(\'Læs om QP webdesign\\\'s koncept.\')\" onmouseout=\"java script:stop()\" href=\"indhold.php3?side=koncept\" target=\"main\">Konceptet</a><br><br><br>
<a onmouseover=\"java script:skriv(\'Se priseksempler og få fornemmelse af hvor prisniveauet ligger\')\" onmouseout=\"java script:stop()\" href=\"indhold.php3?side=priser\" target=\"main\">Priser</a><br><br><br>
<a onmouseover=\"java script:skriv(\'Links til sider der tidligere er lavet af QP webdesign\')\" onmouseout=\"java script:stop()\" href=\"indhold.php3?side=ref\" target=\"main\">Referencer</a><br><br><br>
<a onmouseover=\"java script:skriv(\'Kontakt QP webdesign med henblik på eventuel fremtidig kontakt\')\" onmouseout=\"java script:stop()\" href=\"indhold.php3?side=kontakt\" target=\"main\">Kontakt</a>
</td>
  </tr>
  <tr>
    <td valign=\"bottom\"><iframe marginwidth=\"0\" name=\"text\" src=\"hjorne.htm\" height=\"155\" width=\"220\" frameborder=\"no\" scrolling=\"no\"></iframe>
</td>
  </tr>
</table>
</body>

</html>




Og her til hjorne.htm:

<html>

<head>
<link REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"styleformainpage.css\" TITLE=\"styles\">
</head>
<body>
<table height=\"100%\" valign=\"bottom\" border=\"0\" width=\"100%\"><tr><td><small>
<script language=\"javascript\">
<!--
function skriv(txt){
document.write(txt);
document.close();
}
function stop() {
skriv(\'\');
}
-->
</script>
</small>
</td>
</tr>
</table>
</body>
</html>
Avatar billede nixen Nybegynder
19. september 2000 - 18:38 #1
Når du bruger write() -metoden åbner den implicit et nyt document-objekt (via document.open der kaldes af document.write) der erstatter det gamle; det betyder at du sletter hele sidens indhold(!)
Istedet skal du arbejde med containere du kan skrive ind i
F.eks.
if(IE) containerNavn.innerHTML=txt
else document.containerNavn.document.write(txt)
    document.containerNavn.document.close()

- syntaksen i dette holder jo ikke, men det må du selv lige rode med :)


Avatar billede hansjacob Nybegynder
19. september 2000 - 22:34 #2
øhh... Den må jeg vist lige have lidt nærmere forklaret containernavn går jeg ud fra bare er en variabel, men hvad med innerHTML, og skal der stå noget i HTML koderne ???
Avatar billede nixen Nybegynder
21. oktober 2000 - 15:39 #3
hmmm. sker der noget virkeligt underligt med datoerne herinde, eller er der en speciel grund til at jeg først idag (21/10) har modtaget en mail om din kommentar ?! Hvis der er gået over en måned siden din kommentar, må du virkeligt undskylde - det var ikke min mening at ignorere dig bare fordi jeg havde fået point :-|

Nu skal du høre (hvis det altså stadig er relevant..):
containerNavn er ganske rigtigt en variabel, mere specifikt en variabel det angiver et HTML-element - denne variabel kan så have forskelligt indhold ved forskellige events.
Jeg kunne forestille mig at du vil kunne bruge noget af det følgende; bare som eksempel:

frame1:
<html><head>
<script language=\"Javascript\">
theFrame = top.contextFrame;
IE = document.all? true:false;
function frameWrite(txt) {
if (IE) theFrame.document.body.innerHTML = txt;
else {
theFrame.document.write(txt)
theFrame.document.close()
}
}
</script>
</head><body>
<a href=\"java script:frameWrite(\'Tilbage til QP webdesigns forside\')\" onmouseout=\"java script:frameWrite(\'\')\" href=\"indhold.php3?side=forside\" target=\"main\">Forside</a><br><br><br>
</body></html>

I dette eksempel er der kun to frames på samme niveau; meningen med contextFrame er at den skal indeholde en beskrivelse af hvad der sker når du trykker på linket...
hvis du ikke kan få det til at køre må du lige sige til (og så må vi håbe at der ikke går en måned mer ;-)
Avatar billede hansjacob Nybegynder
22. oktober 2000 - 19:32 #4
Tak skal du have. Det var lige hvad jeg havde brug for.
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