webForumDet fria alternativet

Öppna en sida och sedan köra function i den

12 svar · 417 visningar · startad av Addeladde

AddeladdeMedlem sedan jan. 20013 406 inlägg
#1

Hej

Jag har ett frameset där jag öppnar en sida i en annan frame och sedan ska jag köra en funktion i den men det fungerar inte.

Delar jag upp det i två funktioner så att jag först öppnar sidan med en knapptryckning och sedan med en annan knapp så kör jag funktionen så fungerar det.

Det verkar som att den inte hinner öppna sidan för att köra funktionen.

Så här ser koden ut just nu:

top.huvud.location.href="redigeringsfonster.asp";
top.huvud.bottomFrame.window.skriv()

Finns det någon kod som gör att det körsklart innan den börjar med nästa steg?

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Vad är "bottomFrame"? En ram i huvudramen eller ett element av något slag?

:)

AddeladdeMedlem sedan jan. 20013 406 inlägg
#3

Sidan som öppnas är ett frameset och i det framesetet så är bottomFrame en frame

yohpopsMedlem sedan feb. 20011 198 inlägg
#4
top.huvud.codetorun.value = "skriv()";
top.huvud.location.href="redigeringsfonster.asp";
function window.onload()
{
window.setTimeout (top.huvud.codetorun.value,,"0");
}

codetorun är en variable som du har i frameset-sidan.

AddeladdeMedlem sedan jan. 20013 406 inlägg
#5

Förstår inte riktigt, har du lust och för klara mer?

yohpopsMedlem sedan feb. 20011 198 inlägg
#6

I frameset-sidan får du lägga in en inputtag där du sparar namnet på funktionen som ska köras i bottomFrame.
Detta är endast nödvändigt om du ska köra olika funktioner vid olika tillfällen i bottomFramen.
Om det alltid är en och samma funktion kan du använda window.onload i bottomFrame.

AddeladdeMedlem sedan jan. 20013 406 inlägg
#7

Jag ska köra en funktion som öppnar en sida i topframen. Sidans sökväg skickas med i funktionen:

top.huvud.bottomFrame.window.oppna(sidaID)

Ibland ksa även en tom sida öppnas och då ska denna funktion köras:

top.huvud.bottomFrame.window.skriv()

Fatar fortfarande inte hur jag ska göra.

Det konstiga är att om jag kör funktionen: top.huvud.bottomFrame.window.skriv()
En gång genom en knapptryckning och sedan kör den en gång till så öppnas sidan.

Peter SMedlem sedan dec. 20025 483 inlägg
#8

En lösning kan vara att använda polling. Exempel:

<script type="text/javascript">

var ival;

function func() {
    var head = top.frames["huvud"];
    head.location.href = "redigeringsfonster.asp";

    ival = window.setInterval((function() {
	return function() {
	    if (typeof head.frames["bottomFrame"] != "undefined") {
		head.frames["bottomFrame"].skriv();
		window.clearInterval(ival);
	    }
	}
    })(), 100);
}

</script>

<a href="java&#115;cript:void(0)" onclick="return func()">foo</a>

:)

AddeladdeMedlem sedan jan. 20013 406 inlägg
#9

Det fungerar när jag skriver:

head.frames["bottomFrame"].skriv();

Men när jag använder den andra funktionen där jag skickar med lite värden så fungerar det inte:

head.frames["bottomFrame"].oppna(sida,titel);

Den andra funktionen är det inget fel på den fungerar så länge redigeraren.asp är öppen. PÅ denna rad får jag felmeddelandet

Objeket stöder inte egenskapen eller metoden.

Konstig skriva() och oppna() är nästan två identiska funktioner. Den enda skillnaden är att titel och sökväg skickas med till funktionen.

Vad gör jag för fel?

Peter SMedlem sedan dec. 20025 483 inlägg
#10
<script type="text/javascript">

var ival;

function func() {
    var head = top.frames["huvud"];
    head.location.href = "redigeringsfonster.asp";

    ival = window.setInterval((function(p, t) {
	return function() {
	    if (typeof head.frames["bottomFrame"] != "undefined") {
		head.frames["bottomFrame"].oppna(p, t);
		window.clearInterval(ival);
	    }
	}
    })(sida, titel), 100);
}

</script>

<a href="java&#115;cript:void(0)" onclick="return func()">foo</a>

:)

AddeladdeMedlem sedan jan. 20013 406 inlägg
#11

Fortfarande samma fel: Min funktion ser lite annorlunda ut:

<script>
var ival;

function oppnaSida(sida,titel){

  kollaFonster = top.huvud.location.href.search("redigeringsfonster.asp");

  //Öppna endast en sida i redigeringsfönstret
  if(kollaFonster != -1){
    top.huvud.bottomFrame.window.oppna(sida,titel); 
  } 
  //Öppna redigeringsfönstret
  else{
  var head = top.frames["huvud"];
  head.location.href = "redigeringsfonster.asp";

   ival = window.setInterval((function(p, t) {
	return function() {
	    if (typeof head.frames["bottomFrame"] != "undefined") {
		head.frames["bottomFrame"].oppna(p, t);
		window.clearInterval(ival);
	    }
	}
    })(sida, titel), 100);
  }
}
</script>

Så anroppar jag den så här:

href="javascript: oppnaSida('<%=sidorRS("sida_id")%>', '<%=sidorRS("sida_titel")%>')"
Peter SMedlem sedan dec. 20025 483 inlägg
#12

Och du har definierat en funktion oppna() i bottomFrame? Kan du lägga upp ett icke-fungerande exempel under, förslagsvis, "Mina filer"?

:)

AddeladdeMedlem sedan jan. 20013 406 inlägg
#13

Redigerat ibland fungerar det och ibland fungerar de inte....
Ska jag öka från 100 till typ 1000?

130 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)