Buenas de nuevo, gracias por tan prontas respuestas.
El código me ha quedado de la siguiente manera sin generarme ningún tipo de error pero no con el resultado deseado.
Código:
<html>
<head>
<title>Busqueda</title>
</head>
<script language="JavaScript">
var empresas = new Array("Empresa1", "Empresa2", "Empresa3", "Empresa4", "Empresa5");
function filtrar(texto)
{
var ncaracteres = texto.length;
var texto_comprar = "";
var texto_original = texto;
var empresas_filtro = new Array();
alert(texto_original);
j=0;
for (i=0; i<empresas.length; i++)
{
texto_original = texto_original.substring(0,ncaracteres);
texto_comparar = empresas[i].substring(0,ncaracteres);
if(texto_original == texto_comparar)
{
empresas_filtro[j]=empresas[i];
j++;
}
}
contenido="";
for(a=0;a<empresas_filtro.length;a++)
{
continente=document.getElementById('emp');
contenido+='<a href="'+empresas_filtro[a]+'">'+empresas_filtro[a]+'</a><br>';
}
}
function inicio(){
contenido="";
for(a=0;a<empresas.length;a++){
continente=document.getElementById('emp');
contenido+='<a href="'+empresas[a]+'">'+empresas[a]+'</a><br>';
}
continente.innerHTML=contenido;}
</script>
</head>
<body onload="inicio()">
<form name="form">
<input type="Text" name="empresa" onkeydown="javascript:filtrar(document.form.empresa.value);">
</form>
<div id="emp">
</div>
</body>
</html>
Probando el texto que envío en el evento del input siempre me envia el texto con caracter anterior, es decir, he probado el evento onkeypress y onkeydown.
Si introduzco "a" en la caja de texto, primero envía "vacio" y si luego pulso la la "b" envia "a".... pero bueno, eso es otra historia, el asunto es que no me varía el array ya imprimido.
Supongo que debería vaciar el contenido del <div> y luego volver a rellenar el contenido del div con el array nuevo.
Gracias y un saludo.