Enkelt sätt för att få två kolumner till samma höjd

Att få två kolumner att ständigt ha samma höjd i ren CSS är pain-in-the-ass rent ut sagt 9 gånger av 10, speciellt om du inte vill bland in bilder i din lösning.

Läs hela inlägget →

Chatten på Facebook mot Firefox och Tracemonkey

Firefox och dess “nya” JavaScript renderare verkar ha lite problem med Facebook och chatten som de byggt upp. Konstant med jämna mellanrum, speciellt då man faktiskt använder chatten, så slutar webbläsaren att svara. Läs hela inlägget →

Cache och att uppdatera bilder med jQuery

Tänk dig att du har ska fixa bildeditering på sidan du utvecklar. Tänk att du vill att användaren ska kunna förändra små delar av bilden i webbläsaren och för att få det att gå så smidigt som möjligt så vill du uppdatera bilden utan att webbläsaren laddar om.

bildeditering jquery bild Cache och att uppdatera bilder med jQuery

Problem: Webbläsarens cache sparar bilden och hämtar den gamla, det går tyvärr inte ens att lita på no-cache/no-store meta-taggarna.

Lösningen: Uppdatera bilden med en query-sträng.

Tänk dig att du har följande HTML:

[code lang="html"]<div>
<img src="bild.jpg" alt="" title="" id="image" />
<input type="button" value="update" id="update" />
</div>

Du vill nu att bilden ska uppdateras så fort någon trycker på knappen. För enkelhetens skull så använder vi jQuery.

[code lang="javascript"]
$('#update').click( function () {
$('#image').attr('src', 'bild.jpg');
});

Javascriptkoden ovan ska enligt reglerna byta ut bild.jpg mot bild.jpg, det vill säga uppdatera bilden från servern igen. Det är vid detta momentet cache-funktionen spökar.

Vad vi gör då är att vi lägger till en querysträng i slutet av bilden.

[code lang="javascript"]
$('#update').click( function () {
var timestamp = new Date().getTime();
$('#image').attr('src', 'bild.jpg?t='+timestamp);
});

Vi lägger alltså till en tidsstämpel som sätts till epoch/unixtid och lägger till den som en sträng efter bilden. Bilden kommer alltså hämtas som bild.jpg?t=123445345 där siffrorna alltid ändras och aldrig är unika.

Vad detta innebär i praktiken är att webbläsaren luras att tro att bilden som hämtas alltid är unik och inte är samma som redans finns lagrad - det vill säga att bilden kommer alltid att förnyas, oavsett cache.

Tillgänglighet via JavaScript

Har funderat på detta ett tag, hur fungerar Javascript för blinda eller för andra som använder olika hjälpmedel för att ta sig runt på internet.

1096880 63786041 Tillgänglighet via JavaScript

Att använda ramverk så som jQuery kan vara en lösning så att det finns en naturlig fallback på alla funktioner som konstrueras.

Ska klura lite på detta till helgen, men vad har ni lärt er, sett och läst? Finns det några bra och utförliga resonemang när det gäller ämnet JavaScript och tillgänglighet?

Trött på allt snack om iPhone? Lösningen finns nedan!

Trött på allt snack om telefonen, trött på bloggpost efter bloggpost eller spam på din favorit-microblogg? Eller är du rent av lite avundsjuk att du själv inte har en iphone (som undertecknad)?

Lösningen finns här!  Allt du behöver är tillägget Greasemonkey och mitt lilla Javascript nedan. Det censurerar bort orden “apple” och “iphone” från sidorna du väljer! Så här ser en sökning på “iphone” ut på Bloggy:

iphone no 550x238 Trött på allt snack om iPhone? Lösningen finns nedan!

Censurerat och färdigt!

Scriptet du behöver ser ut på detta viset:

[code language="js"]
// ==UserScript==
// @name anti-apple
// @namespace http://drago.cynatic.org/anti-apple.js
// @description Dödar apple
// @include *
// ==/UserScript==

(function() {
var replacements, regex, key, textnodes, node, s;
replacements = {
"apple": "a****e",
"Apple": "A****e",
"iphone": "i****e",
"iPhone": "i****e",
};
regex = {};
for (key in replacements) {
regex[key] = new RegExp(key, 'g');
}
textnodes = document.evaluate( "//body//text()", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

for (var i = 0; i < textnodes.snapshotLength; i++) {
node = textnodes.snapshotItem(i);
s = node.data;
for (key in replacements) {
s = s.replace(regex[key], replacements[key]);
}
node.data = s;
}
})();

OBS, javascriptet är editerat av mig, men det finns liknande på nätet, hittade på disken och har ingen aning om vart det kommer ifrån!

WordPress problem med Firefox 3.5 preview

ff35 Wordpress problem med Firefox 3.5 previewCutting Edge är häftigt, farligt och otroligt tillfredställande. Ibland kan det dock gå fel. Ett par dagar sedan rullades Firefox 3.5 Preview ut till dem som körde betan och allt var frid och fröjd, tills jag skulle posta ett inlägg på bloggen.

Problemet som verkar finnas är att något i Mozillas Javascript-motor tracemonkey har gått sönder vilket medför att AJAX inte hanteras som det ska.

Det största problemet jag stötte på var att mediahanteraren i WordPress helt enkelt la ner sin verksamhet. Vad som händer är att istället för att öppnas i en egen modul, så öppnas mediahanteraren i samma fönster – vilket får till följd att det man skriver försvinner och att infogandet av bilder blir omöjligt.

Mer information:

Snygg chatt med jQuery i Facebook-stil

fb chat Snygg chatt med jQuery i Facebook stilDet kändes som att det varit på gång länge, men nu kan du i alla fall integrera en chatt a la Facebook på din webbplats med jQuery.

Det ser onekligen väldigt snyggt ut och fungerar bra när man testar demot som finns på sidan.

Det verkar som att Facebook och Gmail (som har en liknande chatt) fortfarande är i framkanten med interaktiva funktioner.

Och efter att lösningarna lanseras så kommer de öppna alternativen ganska snabbt.

(via – webAppers.com)

Hets-inlärning av DOM pågår

javascript dom Hets inlärning av DOM pågår

Dags att ta tag i grejen att lära sig JavaScript fullt ut med all dess skönhet och elakhet. Fick precis boken “DOM Scripting: Web Design with JavaScript and the Document Object Model”, så nu blir det hets-inlärning tills boken är färdigläst.

Jag utlovar en recension på den senare!