Bueno. Lo primero de todo, gracias por responder.
Te cuento. Mi versión de Chrome es 14.0.835.202 m y mi sistema operativo es Windows 7. No obstante, un amigo ha probado el código con Windows XP y Vista y, probablemente, con otras versiones de Chrome (de esto último no estoy seguro) y nota los mismos fallos que yo.
El código que produce el fallo es similar al siguiente:
<?php
include_once("../includes/config.php"); //Se cargan los datos del acceso a BBDD de MySQL
$id_de_usuario = $_POST["id_de_usuario"]; //Se recupera este dato desde el script llamante.
session_start(); //Se abre la sesion actual.
$id_de_cliente = $_SESSION["id_de_cliente"];
$matrizDeDocumentos = array();
$consulta = "SELECT id_de_documento, nombre_de_documento ";
$consulta .= "FROM maestro_de_documentos ";
$consulta .= "WHERE id_de_usuario='".$id_de_usuario."' ";
$consulta .= "AND id_de_cliente='".$id_de_cliente."';";
$hacerConsulta .= mysql_query($consulta, $conexion); //La conexion procede de config.php
while ($doc = mysql_fetch_assoc($hacerConsulta)) $matrizDeDocumentos[] = $doc;
mysql_free_result($hacerConsulta);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml">
<head>
<script language="JavaScript" type="text/javascript">
function enviar(id){
document.getElementById("id_de_documento").value = id;
if (id > 10) {
document.getElementById("formulario").target = "_blank";
} else {
document.getElementById("formulario").target = "marco_auxiliar";
}
document.getElementById("formulario").submit();
}
</script>
</head>
<body>
<?php
foreach ($matrizDeDocumentos as $doc){
echo "<a href=\"javascript:enviar('".$doc["id_de_documento"]."')\">";
echo $doc["nombre_de_documento"];
echo "</a><br />";
}
?>
<form id="formulario" action="mostrar_documento.php" method="post">
<input type="hidden" name="<?php echo session_name(); ?>" value="<?php echo session_id(); ?>" />
<input type="hidden" name="id_de_documento" id="id_de_documento" value="" />
</form>
</body>
</html>
Le he quitado toda la decoración complementaria para facilitarte la lectura. Este ejemplo me produce el mismo fallo que describo. Como ves, el JavaScript encargado de enviar el formulario no puede ser más simple. No es normal que funcione al primer clic sobre un enlace y luego ya no funcione más.
Si tienes alguna sugerencia, te lo agradeceré.