Håller på att skriva en form av chat där jag uppdaterar informationen som visas på skärmen från en databas. Jag hämtar informationen från databasen i codebehind och lägger det i en sträng som jag lägger till diverse html-taggar i för att det ska se bra ut. Jag vet inte hur det funkar, men "blinkandet" kommer ju alltid att vara där eftersom klienten ska ladda upp ny info. Ju slöare uppkoppling, desto tydligare blink. Nej, det är det som är poängen, om man bara uppdaterar den dolda iFramen och sedan uppdaterar innerHtml i div-taggen så får man inget blink. Nej, det är det som är poängen. Genom att uppdatera den dolda iFramen och sedan hämta informationen från den och sätta div-taggens innerHtml så slipper man blinkandet. Då måste du ha ett javascript som anropar IFramens parent, som då ska vara sidan med div:en vars InnerHTML du vill ändra. Men hur ska jag "lagra" informationen som jag ska lägga i IFrameens parent? Är det typ lämpligt att: souljunk, Flytta tråden du, inga problem för min del. :) souljunk, Skumt... Jag vet inte vad det är för problem. När jag försöker sätta onreadystatechange="EnFunktion()" så får jag "röda vågor" under onreadystatecahnge och ett tooltip som säger: Av någon underlig anledning fungerar det ändå. Hmm... Jaja... får se om jag får ordning på det här nu då. Med röda streck så antar jag att du sitter med Visual Studio. Du kan inte lita på att de röda strecken alltid är rätt. Alla egenskaper som finns för html taggar är inte med så prova ändå. Kolla HTML referenser på nätet för att få reda på vad som går och inte går. VS.NET är som sagt inte en komplett referens när det gäller sådana saker. Vidare beror det på inställningarna i VS.NET där man kan ange vilka versioner av olikas aker man riktar sig till och till vilken DTD etc. Kan man inte skriva:iFrame och innerHtml
Använder sedan Response.Write för att detta ska "paste:as" på aspx-sidan.
Upplägget är att jag har en aspx-sida som innehåller en iFrame (innehållande sidan som hämtar databasinformationen) och en div-tag (<div>). Min iFrame är dold och uppdateras var annan sekund för att hålla informationen uppdaterad.
Min plan var sedan att jag skulle hämta informationen från iFramen och lägga det i div-taggens innerHtml. Fungerar detta?
Allt detta är för att min sida inte ska "blinka" när jag lägger ut ny information.Sv: iFrame och innerHtml
Sv: iFrame och innerHtml
Min fråga är bara hur jag ska få tag i informationen från iFramen.Sv: iFrame och innerHtml
Min fråga är bara hur jag hämtar informationen från iFramen.Sv: iFrame och innerHtml
Pseudokod:
1. Sidan i IFramen uppdateras
2. Efter uppdateringen är gjord exekverar sidan en JavaScript funktion
3. JS-funktionen anropar parent sidan och hittar div:en
4. JS-funktionen uppdaterar InnerHtml
Med andra ord så är det här en Javascript fråga, inte asp.net.Sv: iFrame och innerHtml
1. Hämta informationen från databasen.
2. "Sätta ihop den" till en sträng (med de html-taggar jag vill ha, typ <br> osv).
3. Placera strängen i en textbox på sidan som IFramen visar.
I scriptet som körs efter att sidan uppdaterats:
1. Leta upp parent-sidan till IFramen.
2. Placera texten som finns i textboxen i div:ens innerHtml.
Hur låter detta?Sv: iFrame och innerHtml
Fortfarande inte en asp.net relaterad fråga hur du än vrider på den, men principen är att på sidan som innehåller din IFrame så lägger du
<iframe id="myframe" src="sidan.aspx" style="display:none" onreadystatechange="MoveContents()"></iframe>
<div id="mydiv"></div>
Det viktiga här är <b>onreadystatechange</b> som triggas när iframen bytar status. Sen får du skapa metroden <b>NoveContents()</b> (som du kan kalla vad du vill) som kommer göra själva kopieringen mellan ramen och din div.
<script>
function MoveContents()
{
var myFrameVar =
document.getElementById("myframe");
if( myFrame.readystate == "complete" )
{
var myDivVar =
document.getElementById("mydiv");
myDivVar.innerHTML = myFrameVar.document.body.innerHTML;
}
}
</script>
I sidan som "visas" i din IFrame lägger du till en <b>META</b> tagg som gör en automatisk refresh var x-sekund.
<b>PS.</b> Jag är övertygad om att det finns fel i koden oven då arbetsdagen precis har börjat och jag har sovit på tok för lite i helgen. Men nu har du konceptet och kan flytta över frågan till <b>JavaScript</b> forumet (jag är moderator och kan flytta hela tråden om du vill).
Sv: iFrame och innerHtml
Jaa...ett problem är att jag inte tycks hitta nåt readystatechange attribut för iFrame.Sv: iFrame och innerHtml
OnreadyStateChange Event
http://msdn.microsoft.com/workshop/author/dhtml/reference/events/onreadystatechange.asp?frame=trueSv: iFrame och innerHtml
Could not fint any attribute 'onreadystatechange' of element 'iframe'.
Vad beror detta på?Sv: iFrame och innerHtml
Sv: iFrame och innerHtml
Sv: iFrame och innerHtml
Sv: iFrame och innerHtml
<code>
<script>
function MoveContents(myFrameVar, targetId)
{
if( myFrame.readystate == "complete" )
{
var myTarget = document.getElementById(targetId);
myTarget.innerHTML = myFrameVar.document.body.innerHTML;
}
}
</script>
<iframe id="myframe" src="sidan.aspx" style="display:none" onreadystatechange="MoveContents(this, 'mydiv')"></iframe>
<div id="mydiv"></div>
</code>