Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/09/2011, 12:58
DANIELRIV
 
Fecha de Ingreso: septiembre-2011
Ubicación: Culiacan, Sinaloa, Mexico
Mensajes: 10
Antigüedad: 13 años, 2 meses
Puntos: 1
Hacer funcionar los botones del navegador en una pagina echa en ajax

Bueno aquí les presento un código en el que e estado trabajando yo para hacer funcionar los botones del navegador sin usar librerías es algo simple pero en fin, El único problema que e tenido hasta el momento es que en el navegador de opera tienes que dar dos click al botón de atrás para que funcione la pagina pero en IE, fire fox , zafari y crome funciona bien

bueno este es el código:

index.php
Cita:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>prueba ajax</title>
<link href="css.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript">
var obj="0";
var pag="0";
function ObjetoAjax()
{
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function Buscar(x)
{
var ajax = ObjetoAjax();

var div = document.getElementById('contenido');

div.innerHTML ='<div class="loading"><img src="loading.gif" /></div>';

ajax.open("POST", "ajax.php", true);

ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
div.innerHTML = ajax.responseText;
}
}

switch(x)
{
case "pagina1": obj="1"; window.location.hash="#P-1"; break;
case "inicio": obj=location.hash.split('-')[1]; break;
case "pagina2": obj="2"; window.location.hash="#P-2"; break;
case "pagina3": obj="3"; window.location.hash="#P-3"; break;
}


ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("sec=" + x );

}
function pag1()
{
Buscar("pagina1");
}
function pag2()
{
Buscar("pagina2");
}
function pag3()
{
Buscar("pagina3");
}
function rarr()
{
setInterval("rar();",1);

}
function rar()
{

pag = location.hash.split('-')[1];
if(obj != pag)
{

switch(pag)
{
case "1": Buscar("pagina1"); break;
case "2": Buscar("pagina2"); break;
case "3": Buscar("pagina3"); break;
default : Buscar("inicio"); break;
}
}
}
</script>
</head>

<body onload="rarr();">
<div class="menu">
<a class="btn" onclick="pag1();" >pagina1</a>
<a class="btn" onclick="pag2();" >pagina2</a>
<a class="btn" onclick="pag3();" >pagina3</a>
</div>
<div id="contenido" class="content">
</div>
</body>
</html>
ajax.php
Cita:
<?php
if(isset($_POST["sec"]))
{
$sec=$_POST["sec"];

switch($sec){

case "inicio": include("inicio.php"); break;

case "pagina1": include("pagina1.php"); break;

case "pagina2": include("pagina2.php"); break;

case "pagina3": include("pagina3.php"); break;


}
}

?>
Bueno se aceptan criticas y comentarios y si me pueden ayudar con el problema de opera se les agradecería XD
bueno aquí esta un link donde tengo hospedado el ejemplo:[URL="http://danielrivas.webcindario.com/"]http://danielrivas.webcindario.com/[/URL]