¿Por qué funciona esto en jsfiddle pero no en mi documento?

Encontré un maravilloso jsfiddle que alguien ha hecho y quería usar parte de él en mi proyecto:

http://jsfiddle.net/manuel/29gtu/

Funciona en el jsfiddle pero no en mi documento HTML. Aquí está lo que en mi documento:

<!DOCTYPE html>
<html>
<head>
<script src="scripts/jquery-1.7.2.js"></script>

<script>

$("button").click(function() {
    var id = $("#id").val();
    var text = "icon-"+id;
    // update the result array
    var result = JSON.parse(localStorage.getItem("result"));
    if(result == null)
        result = [];

    result.push({id: id, icon: text});
    // save the new result array
    localStorage.setItem("result", JSON.stringify(result));

    // append the new li
    $("#bxs").append($("<li></li>").attr("id", "item-"+id).html(text));
});

// on init fill the ul
var result = JSON.parse(localStorage.getItem("result"));
if(result != null) {
    for(var i=0;i<result.length;i++) {
        var item = result[i];
        $("#bxs").append($("<li></li>").attr("id", "item-"+item.id).html(item.icon));
    }
}​

</script>
</head>

<body>
<ul id="bxs" class="tabs"> 
</ul>

<input type="text" id="id" /><button>save</button>
</body>
</html>

El código se copia y se pega desde el violín. Creo que tiene que ver con que no tenga un complemento para el almacenamiento local. Para que funcione jsfiddle, ¿necesito algún complemento externo que me esté perdiendo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta