¿Cómo obtener una vista previa de una imagen antes de subirla usando JavaScript o jquery?

Solo necesito mostrar la imagen elegida (Examinar) por el usuario antes de la carga. Para este propósito estoy usando este código:

JS

function setImage(file) {
    if(document.all)
        document.getElementById('prevImage').src = file.value;
    else
        document.getElementById('prevImage').src = file.files.item(0).getAsDataURL();
    if(document.getElementById('prevImage').src.length > 0) 
        document.getElementById('prevImage').style.display = 'block';
}

HTML

<img id="prevImage"  src=""  alt="" width="313" height="315" />
<input name="photo1" id="photo1" type="file" onchange="setImage(this);"  value="" class="input" size="17"/>

Este código funciona bien en Safari, Firefox 3,4,5 pero no funciona en Google Chrome 12 o superior e IE 8, 9.

¿Entonces por favor dime alguna solución con respecto a estos problemas?

Ya probé otra solución dada en este sitio web, pero tampoco funcionan en todos los principales navegadores.

si tiene una solución para este código o un código completamente nuevo, por favor dígame.

Respuestas a la pregunta(2)

Su respuesta a la pregunta