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 Vad är "bottomFrame"? En ram i huvudramen eller ett element av något slag?
:)
Sidan som öppnas är ett frameset och i det framesetet så är bottomFrame en frame
yohpopsMedlem sedan feb. 20011 198 inlägg 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.
Förstår inte riktigt, har du lust och för klara mer?
yohpopsMedlem sedan feb. 20011 198 inlägg 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.
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 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="javascript:void(0)" onclick="return func()">foo</a>
:)
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 <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="javascript:void(0)" onclick="return func()">foo</a>
:)
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 Och du har definierat en funktion oppna() i bottomFrame? Kan du lägga upp ett icke-fungerande exempel under, förslagsvis, "Mina filer"?
:)
Redigerat ibland fungerar det och ibland fungerar de inte....
Ska jag öka från 100 till typ 1000?