So zeigen Sie ein Bild vor dem Hochladen in verschiedenen Browsern in der Vorschau an

Ich möchte eine Vorschau eines Bildes anzeigen, bevor es hochgeladen wird. Ich habe eine Teillösung gefunden, die für IE6 und Firefox funktioniert, und habe sie noch nicht in IE7 oder IE8 getestet. Aber ich möchte eine Lösung, die auch in Safari funktioniert, dh7 und ie8. Hier ist die Lösung, die durch Kombinieren der IE6- und Firefox-Lösung erhalten wird:

function preview(what) {
if(jQuery.browser.msie) {
document.getElementById("preview-photo").src=what.value;
return;
}
else if(jQuery.browser.safari) {
document.getElementById("preview-photo").src=what.value;
return;
}
document.getElementById("preview-photo").src=what.files[0].getAsDataURL();
//  alert(jQuery("#preview-photo").height());
//  alert(jQuery("#preview-photo").width());
var h = jQuery("#preview-photo").height();  
var w = jQuery("#preview-photo").width();//assuming width is 68, and height is floating
if ((h > 68) || (w > 68)){
if (h > w){
jQuery("#preview-photo").css("height", "68px");
jQuery("#preview-photo").css("width", "auto");
}else {
jQuery("#preview-photo").css("width", "68px");
jQuery("#preview-photo").css("height", "auto");
}
}
}

Der getAsDataURL () - Teil funktioniert in Firefox, und der Teil "src = what.value" funktioniert in IE6, aber was würde in Safari funktionieren, und funktioniert "src = what.value" auch in IE7 und IE8? Wenn nicht, gibt es eine Lösung, die auch dort funktioniert? Ich würde mich freuen, wenn ich die Bildvorschau in 5 oder 6 Browsern zum Laufen bringen könnte. Wenn dies nicht der Fall ist, besteht die einzige Möglichkeit, zwei Formulare mit einem Bild als Teil eines anderen Formulars hochzuladen.