tronezMedlem sedan juli 2001657 inlägg
Något luddig rubrik, men här är iaf mitt problem. Jag har skrivit lite kod som ska ta en URL från
en inputbox i top framen och öppna denna URL i main frame, där den tar tid hur lång tid det tog osv, har fixat detta.
Men efter den räknat ut hur lång tid det tagit att ladda sidan ska den skriva ut resultatet samt länk i den den högra framen. Länken ska åter öppna URL:en i mainframe..
var startTime;
var url;
var tDiff;
var stopTime;
var showURL;
var arre = new Array();
var i = 0;
function goURL(url)
{
showURL = url;
window.open(showURL,'main');
startTimer();
}
function startTimer()
{
startTime = new Date();
}
function enable(){
frames[ 0 ].document.form1.bakk.disabled=true;
frames[ 0 ].document.form1.forw.disabled=true;
}
// när framen laddats klart anropas denna funktion
function stopTimer()
{
stopTime = new Date();
tDiff = (stopTime.getTime() - startTime.getTime())/1000;
var newTime = Math.round(tDiff * 10) / 10;
alert("Sidan har laddats klart... det tog "+ newTime +" sekunder att ladda sidan");
[B]arre[i] = frames[ 2 ].document.write("<a href=\""+showURL+"\" target=\"main\" onclick=\"parent.startTimer()\">"+ showURL + " ( " + newTime + " s )</a><br />");[/B]
if(frames[ 2 ].document.body.innerHTML == "")
{
return;
}
else{
enable();
}
}
Men nu är det så om jag klickar på länken i högra framen, så öppnas visserligen en URL i mainframe
men inte den rätta, den tar nämligen den URL jag senast skrev i inputen på top framen.
Så som jag tycker det ska gå till, så vill jag inte ( koden där jag har fetmarkerat ) anropa funktionen startTimer()
jag vill hellre skicka en inparameter till funktionen goURL så den uppdaterar den URL som finns i den funktionen.
Nåja kanske lite kasst föklarat, men fråga gärna om ni inte förstår ;)
/r: ni kan även se sidan här för att enklare förstå mitt problem
nitro2k01Medlem sedan aug. 20037 630 inlägg
Två lösningar, båda använder sig av this.url i onclick. Var nog det du letade efter...
// arre[i] = frames[ 2 ].document.write("<a href=\""+showURL+"\" target=\"main\" onclick=\"parent.startTimer();parent.showURL = this.href;\">"+ showURL + " ( " + newTime + " s )</a><br />");
arre[i] = frames[ 2 ].document.write("<a href=\""+showURL+"\" target=\"main\" onclick=\"parent.goURL (this.href);\">"+ showURL + " ( " + newTime + " s )</a><br />");
Dessutom har jag fixat lite annat...
onsubmit="parent.goURL(this.sendURL.value) ;return false;"
Gör att toppramen laddas om hela tiden...
Så är jag skeptisk till att du använder stopTimer() i main.html. Varför? Skippa åtminstone att inkludera his.js där och skriv
<BODY onload="parent.stopTimer()">
om du absolut måste ha med stopTimer() där.
Intressant grej detta. Kan jag fortsätta utveckla den? Kan bli något seriöst!
tronezMedlem sedan juli 2001657 inlägg
Tack för svaret nitro2k01, funkade perfekt.
Sen att onload="startTimer()" låg i main.html, var inte meningen, det satta jag nog dit när jag började med koden, sen har jag inte vart inne i den koden så mkt eftersom den knappt används. Så den e borta nu!
Givetvis får du göra vad du vill med koden...
tronezMedlem sedan juli 2001657 inlägg
Ahh, skulle behöva lite mer hjälp :)
I min topframe har jag ju även 2 buttons som man ska ett steg bakåt resp. framåt.
Om jag är på den sista arrayen i arre *där mina länkar ligger, så ska den disabla framåt knappen så man inte kan gå framåt någe mer, detsamma gäller för bakåtknappen, om 0 disabla bakåt.
Hur ska man gå tillväga när det gäller detta?*
nitro2k01Medlem sedan aug. 20037 630 inlägg
Håller på med det nu.
Får jag fråga varför du gör detta? Är det nåt du använder själv, eller är det mest för att lära dig?
tronezMedlem sedan juli 2001657 inlägg
Nej, det är inget jag kommer använda själv, utan för att jag försöker lära mig mer om hur man skickar saker frames emellan.
tronezMedlem sedan juli 2001657 inlägg
Det största problemet med det här, är ju att stopTimer() körs när main frame har laddats, då läggs ju även en ny rad till i arrayen, vilket gör att man kommer ju aldrig till slutet av arrayen?
nitro2k01Medlem sedan aug. 20037 630 inlägg
Ok, här kommer en helt ny version, mer eller mindre baserad på din ursprungliga. Den är kraftigt förbättrad och koden är delvis objektorienterad och väl strukturerad.
tronezMedlem sedan juli 2001657 inlägg
jodu, den funkade perfekt!
Ska titta igenom den å försöka förstå mig på den bara :birp