Stjärn-hack i väntan på bättre CSS-stöd

Den som sysslat något med html och css-design vet att det är svårt att skapa design som fungerar i alla de vanligaste webbläsarna.

Speciellt höjden på ett element är svårt att hantera eftersom IE6 och lägre inte accapterar css-standard väljaren "min-height".

För att justera detta kan man använda det så kallade stjärn-hacket som jag visar ett exempel på nedan. Man tar helt enkelt användning i ett annat fel i IE som gör att css kod efter en stjärna accepteras. Övriga webbläsare som t ex Firefox ignorerar raden efter stjärnan och påverkas ej.

#wrapper {position: relative;min-height: 100%; }
* html #wrapper {height: 100%;}

Mer information
http://centricle.com/ref/css/filters/tests/star_html/
http://www.info.com.ph/~etan/w3pantheon/style/starhtmlbug.html

By Jesper Lind

Stänga ner en applikation för underhåll

Ibland vill man stänga ner en hel hemsida medans man gör underhåll på den. Oftast vill man ju att det ska synas en sida med ett meddelande för besökare, som förklarar varför uppehållet sker.

En lätt lösning finns i Asp.net 2.0 där man kan ladda upp en fil som heter app_offline.htm direkt i rootmappen. Då går det inte längre att gå in på några andra sidor i applikationen. IIS-servern måste fortfarande vara igång.

By Jesper Lind

Code Odyssey får ny hemsida!

http://www.codeodyssey.se/upload/resource/blog/Code-Odyssey_home_060826.jpg

Vi har gjort om hemsidan lite (alldeles grön) och utrustat den med en bloggmotor. Här kommer ni kunna läs om programmering, design och om vad som händer i vårt företag. 

By Jesper Lind

Ange titeln på sida i .Net 2.0

Titlen sätts ju vanligtsvis statiskt i <head>-taggen i html. I asp.net 2.0 kan man enkelt ange denna dynamiskt genom kod. Väldigt smidigt om man har många sidor som skapas dynamiskt ur en databas.

Page.Title = "Sidans title";

Att ha en bra titel på sidan är väldigt viktigt speciellt ut SEO-synpunkt. Läs mer om detta på Carnaby-bloggen.

By Jesper Lind

Visningsprogram för bilder i XP - Sökväg?

Har letat ett tag efter .exe filen till XP-programmet "visningsprogram för bilder och fax" utan att kunna hitta det i datorn. Nån som vet?

Skälet till att jag letar är att jag vill ange vilket program som ska öppnas i Dreamweaver när jag klickar på en bild. Där har jag inte helt i vilken sökväg man ska ange, men programmet ligger på denna DDL:

C:\WINDOWS\System32\shimgvw.dll

Enligt tråden på följande adress kan man nå visningsprogrammet genom att skriva så här:

rundll32.exe C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen

Det får jag att funka CMD-prompten, men inte när jag väljer program i Dreamweaver.

Aktivera eller stängar av "Visningsprogram för bilder och fax"
Märkte att väldigt många söker på frågor om visningsprogrammet och hamnar på detta inlägget. Om ditt problem är att du saknar programmet helt, kan det vara avstängt på din dator.

För att aktivera så öppnar man Kör i startmenyn och skriver följande: regsvr32 shimgvw.dll

Vill man stänga av det igen skriver man: regsvr32 /u shimgvw.dll

By Jesper Lind

Fixa ActiveX-kontroller så de aktiveras i IE

Bakgrund
Microsoft blev år 2003 stämda av företaget Eolas som krävde ett skadestånd på 521 miljoner dollar. Eolas menar att Microsoft har använt patenterad teknik i deras populära webbläsare, Internet Explorer, genom sättet som de länkar in ActiveX-kontroller. Detta omfattar Flash, Quicktime, Microsoft mediaspelare m.m.

Istället för att betala skadeståndet svarade Microsoft med att ta bort denna funktionalitet från IE. Detta skedde genom en säkerhetsuppdatering i juni 2006. Microsoft har fått en del kritik för sitt förhavande, speciellt eftersom man valde att få det att se ut som en säkerhetsuppdatering för användarna. Man borde ha gjort en speciell uppdatering för att bättre förklara bakgrunden till borttagningen av AxtiveX funktionerna.

Läs mer om stämningen här:
http://www.informationweek.com/security/showArticle.jhtml?articleID=185300841

Problemet och lösningar
Om inget görs möts besökaren av meddelandet "Klicka här om du vill aktivera och använda den här kontrollen." och man måste klicka en extra gång innan man kan använda kontrollen.

Det finns några sätt att arbeta runt dessa nya begränsningar som involverar javascript och omskrivande av embed-taggarna.

Här är Microsofts rekommendationer:
http://msdn.microsoft.com/workshop/author/dhtml/overview/activating_activex.asp

Och Macromedias:
http://www.adobe.com/devnet/activecontent/articles/devletter.html

Båda dessa tekniker innebär att man skriver om all kod och detta kan vara väldigt omständigt på en stor hemsida som innehåller många ActiveX kontroller.

Den lätta lösningen
Det finns dock en enkel lösning genom att använda följande javascript-include. Döp scriptet till förslagsvis activate_activex.js och länka in det längst ner på sidan som innehåller dina kontroller precis innan /body-taggen.


theObjects = document.getElementsByTagName("object");
for (var i = 0; i < theObjects.length; i++) {
theObjects[i].outerHTML = theObjects[i].outerHTML;
}

Jag hittade detta användbara skript här:
http://www.amarasoftware.com/flash-problem.htm

By Jesper Lind

Problem med upptagna uppkopplingar

I fjärrinloggningen på server 2003 kan det ibland bli så att alla uppkopplingar är upptagna. Detta kan ske om man inte loggat ur sessionerna ordentligt och servern inte är inställd på att logga ut dem själv inom rimlig tid.

Här är ett bra tips för att få tillgång till en "extra" uppkoppling.

start/ kör / mstsc -v:0.0.0.0 /f -console (byt ut 0.0.0.0 till ip adressen på din server)

För att sedan släppa de gamla sessionerna går man in i Administrator Tools / Terminal Services Manager och välj "Log Off" på respektive remote session.

By Jesper Lind

Rundade hörn i HTML utan bilder

Ni som jobbar med html-design vet att det är lättast att göra fyrkantiga rutor. Det finns helt enkelt inget direkt stöd för att göra rundade linjer och kanter.

Vill man tex göra en ruta med rundade hörn brukar man lösa det genom att skapa alla hörnen som bilder och länka in dessa på rätt ställen. En minst sagt tidsödslande process och vad händer om man vill byta färg på rutan? Bara till att köra igång bildredigeringsprogrammet och ändra alla bilder.

En lättare lösning
Idag hittade jag en artikel om hur man kan göra det mycket enklare med hjälp av ett gratis javascript och lite medföljande CSS. Har precis provat det och det fungerar utmärkt. Läs artikeln på följande address: http://pro.html.it/articoli/id_599/idcat_31/pag_1/pag.html

Uppdatering:
Sedan detta skrevs har Nifty Corners Tube släpps, som är den bästa tekniken för att göra rundade hörn som jag har provat. Väldigt lätt att använda.

By Jesper Lind

Undvik konverteringsfel med nullvärden från databasen

IBland får jag felet "Input string was not in a correct format." vid funktioner enligt nedan och det finns null-värde i databasen.

<%# GetUser(Convert.ToInt32(DataBinder.Eval(Container.DataItem, "UserId"))) %>

Då kan man göra så här för att parera nullvärdena:

<%# GetUser(Eval("UserId") == DBNull.Value ? 0 : Convert.ToInt32(Eval("UserId")))  %>

Eller i Code Behind:

int userId = objDataReader["UserId"] == DBNull.Value ? 0 : Convert.ToInt32(objDataReader["UserId"]);

By Jesper Lind