webForumDet fria alternativet

netscape IFRAME

6 svar · 400 visningar · startad av niels

nielsMedlem sedan juli 2000215 inlägg
#1

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
#2

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
#3

Standardfråga #1:
Vad menar du med att det "inte fungerar"?

nielsMedlem sedan juli 2000215 inlägg
#4

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
#5

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
#6

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
#7

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;}
Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb