Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[C#, IE6, JavaScript]Image swap werkt niet

Pagina: 1
Acties:
  • 611 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een ASP.NET2.0 webservice die on-the-fly een plaatje genereert. Dit plaatje laad ik via javascript in op een specifieke locatie.
Dit werkt prima voor FF en IE7, maar niet voor IE6.
Als ik de gegenereerde imagelink rechtstreeks oproep in IE6 wordt die wel getoond.
Als ik met hetzelfde javascript een lokaal plaatje vervang werkt het ook.
Ik zit dus nu met het probleem dat ik er niet de vinger achter krijg of het op de server (C#) fout gaat of dat het in mijn javascript fout gaat.
Dit is mijn code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
System.Drawing.Bitmap bmp = new Bitmap(600, 600);
System.Drawing.Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White);
g.DrawString(tekst, new Font("Arial", 10), Brushes.Black, new PointF(0, 0));
ctx.Response.ContentType = "image/jpeg";
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
    bmp.Save(stream, ImageFormat.Jpeg);
    stream.WriteTo(ctx.Response.OutputStream);
}
g.Dispose();
bmp.Dispose();

JavaScript:
1
2
3
4
// Update the legend
var newSrc = this.MapWinWeb + "&action=getlegend&legendsize=200,500&uniquerequestid=" + Math.random()*5;
//newSrc = "images/img08.gif"; //Werkt wel
document.getElementById("legendimg").src = newSrc;

HTML:
1
<div id="legendanchor"><img id="legendimg" width="200" onmousedown="javascript:HandleLegendClick(document.getElementById('legendanchor'), event);" src="images/loading.gif" alt="Click to change" /></div>

Ter info. De url (local server) de gemaakt wordt is
code:
1
http://webgisdemo/MapWinWeb/MapGen.ashx?project=Nederland&action=getlegend&legendsize=200,500&uniquerequestid=4.530180264287561

Het gaat hier om de legenda die bij een kaart hoort.

Graag enig advies waar ik het zoeken moet.

Alvast bedankt.

  • jan-marten
  • Registratie: September 2000
  • Laatst online: 17-11 19:58
Wat is de waarde van this.MapWinWeb en de waarde van newSrc?
Ik zie in de parameter legendsize een gereserveerd karakter (,) staan.

Verwijderd

Topicstarter
this.MapWinWeb bevat de link naar de server: http://webgisdemo/MapWinWeb/MapGen.ashx?project=Nederland
newSrc bevat de link naar het gegenereerde plaatje:
code:
1
http://webgisdemo/MapWinWeb/MapGen.ashx?project=Nederland&action=getlegend&legendsize=200,500&uniquerequestid=4.530180264287561


Als ik mijn javascript aanpas naar
JavaScript:
1
2
3
4
5
// Update the legend
var newSrc = this.MapWinWeb + "&action=getlegend&legendsize=200,500&uniquerequestid=" + Math.random()*5;
//newSrc = "images/img08.gif"; //Werkt wel
window.open(newSrc);
document.getElementById("legendimg").src = newSrc;

Dan wordt in het nieuwe window het plaatje correct getoond.
Het enige wat ik zo kan bedenken is dat de string newSrc te veel characters bevat. 8)7

Ik kan nu niet bij de machine, maar ik zal morgenvroeg gelijk kijken of het helpt de komma eruit te halen.

Kan het geen instelling zijn in IIS of IE6, ik heb al gekeken en gezocht maar ik kon niets vinden. |:(

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 20-11 13:38

sopsop

[v] [;,,;] [v]

Bekend probleem bij IE6, het zetten van de source van de img in je javascript moet je even verpakken in een setTimeout. Dan zou het plaatje wel moeten laden.

zoiets dus:
JavaScript:
1
2
3
// Update the legend 
var newSrc = this.MapWinWeb + "&action=getlegend&legendsize=200,500&uniquerequestid=" + Math.random()*5; 
setTimeout('document.getElementById("legendimg").src = "' + newSrc + '"',10);

[ Voor 58% gewijzigd door sopsop op 19-12-2007 01:31 ]


Verwijderd

Topicstarter
Ik heb het geprobeerd zonder de komma in de url en met de setTimeout maar zonder resultaat. Ik heb inmiddels de website in de 'Trusted Zone' gezet maar dat hielp ook niet.

In de statusbar komt te staan: downloading picture en dan mijn url, CPU schiet naar 100% en ik kan uren wachten maar er komt geen plaatje.
Moet de header van het plaatje misschien worden aangepast?

Iemand nog een andere suggestie?

Verwijderd

Topicstarter
Om het geheel nog complexer te maken is er een website online (http://www.mapserve.net/M...rveViewer/index.aspx?rn=3) die dezelfde code gebruikt, sterker nog mijn lokale website is een kopie van die van hem en als ik met mijn IE6 er naar toe browse, krijg ik wel de gegenereerde plaatjes te zien en gaat IE6 niet hangen.

Ik snap er helemaal niets meer van. Is het dan toch een setting van IIS6? Of een patch/update van de Windows versie op mijn server? 8)7 |:( :'(

  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 31-10 11:58
Misschien je cache is legen?

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Verwijderd

Topicstarter
Uiteraard had ik mijn cache al geleegd. Sterker nog ik heb de cachegrootte op 1 MB staan (kleiner kon niet), bij het sluiten van IE6 worden mijn temp files verwijderd. Ik heb ook al aan gegeven dat de pagina ververst moet worden bij elk bezoek.
Nu hoorde ik via via dat dit een bekend probleem is met, inderdaad, de cache en deze versie van IE6 (6.0.2900.2180). Er zou een patch voor zijn maar die kan ik niet vinden.
Mocht iemand hier meer over weten dan hoor ik het graag.

Iedereen fijne feestdagen gewenst en een goed en bugvrij 2008!

Paul
Pagina: 1