nielsMedlem sedan juli 2000215 inlägg
Har en sida med en IFRAME. I iframen behöver jag anropa en funktion från sidan där iframen ligger.
Jag kör då:
javascript:window.parent.sendId(${program.documentId});
Funkar fint i FireFox, Opera och IE. Men inte i netvigator. Hur gör man för att få det att fungera i netscape med?
Tack!
/Niels
nitro2k01Medlem sedan aug. 20037 630 inlägg
Vad är ${program.documentId} för något? Ser ut som server-side-kod...
Hur som helst 1) Posta hur just den koden ser ut när du kollar källa.
2) Felet ligger troligen i funktionen sendId som finns en framenivå ner. Posta även den, så kan du nog få hjälp.
GuffaMedlem sedan juni 2004533 inlägg
Standardfråga #1:
Vad menar du med att det "inte fungerar"?
nielsMedlem sedan juli 2000215 inlägg
Det funkar inte i Safari heller.
Men "inte fungerar" menar jag att det inte fungera, dvs man får ett fel mess eller så händer det inget.
${program.documentId} är velocity variabel som parsas innan.
Tänkte att det kanske var att jag använde window.parent. konst. som kanske inte är ok i netscape eller safari??
nielsMedlem sedan juli 2000215 inlägg
Om vi förenklar problemet så blir det så här:
outer.html:
...
<script language="javascript">
function sendId(id) {window.document.all.program_id.value =id;}
</script>
<iframe src="inner.html" scrolling="auto" width="368" height="200"></iframe>
<input id="program_id" name="program_id" type="hidden">
...
inner.html:
...
<a href="javascript:window.parent.sendId(3);">send</a>
...
Funkar som sagt fint i IE, Opera och FireFox men inte i netscape och safari.
Tacksam för hjälp.
GuffaMedlem sedan juni 2004533 inlägg
Vad får du för felmeddelande, då?
Säger du att det fungerar i Firefox? Är du verkligen säker på det? document.all är nämligen IE-specifikt och fungerar enbart i IE och Opera.
Använd formuläret för att komma åt fältet istället:
<script type="text/javascript">
function sendId(id) {
document.FORMULÄRNAMNET.program_id.value = id;
}
</script>
nitro2k01Medlem sedan aug. 20037 630 inlägg
Standardproblem: document.all. Standardlösningen på dessa problem är att byta ut document.all mot document.getElementById()
function sendId(id) {window.document.[b]getElementById("program_id").[/b]value =id;}