Añadir parámetro en url sin recargar página

Estoy usando el siguiente código para agregar param a url. Esto funciona bien, pero cuando el parámetro se agrega en la URL, la página se vuelve a cargar. Quiero usar esta funcionalidad sin volver a cargar la página.

<code>function insertParam(key, value)
{
    key = escape(key); value = escape(value);

    var kvp = document.location.search.substr(1).split('&');


    var i=kvp.length; var x; while(i--) 
    {
        x = kvp[i].split('=');

        if (x[0]==key)
        {
                x[1] = value;
                kvp[i] = x.join('=');
                    alert('sdfadsf');
                break;
        }
    }

    if(i<0) {kvp[kvp.length] = [key,value].join('=');}

    //this will reload the page, it's likely better to store this until finished
    document.location.search = kvp.join('&'); 
    //alert(document.location.href);
</code>
}

Quiero agregar varios parámetros a la url sin volver a cargar la página como:

txt1txt2txt3link1link2link3

quiero url: ".... / search.php"

después de hacer clic en txt2 quiero url: ".... / search.php # t_2"

después de hacer clic en link2 quiero url: ".... / search.php # t_1 & l_2"

Respuestas a la pregunta(2)

Su respuesta a la pregunta