devi spostare

codice:
var val = document.getElementById('valore').value;
var ris=0;
dentro la funzione. Altrimenti il valore di val rimane lo stesso. (e l'errore dovresti averlo anche su safari)

Poi, aggiungi un elemento nell'html, tipo <span id="risultato"></span> e invece del document.write usa

codice:
document.getElementById("risultato").innerHTML = "Risultato conversione: " +ris;