Ver Mensaje Individual
  #8 (permalink)  
Antiguo 20/08/2010, 03:07
micibertrabajo
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
lograr lo mismo pero con ventana de alerta ( no popup )

Cita:
Iniciado por pptavo Ver Mensaje
deberias crear una cookie cada vez que aparezca una ventana.. en javascript sería algo por el estilo:

Código:
<script language="javascript">

 // configura:
var popup_url = "http://tusitioweb.com";
var atributos = "width="+screen.width+",height="+screen.height+",scrollbars=1,resizable=1,toolbar=0,location=0,menubar=0,status=0,directories=0";



 cookiesent = Get_Cookie('cookiesent');

if(cookiesent != 1){
// cada 4 horas abrira una ventana
popup();
Set_Cookie( 'cookiesent', 1, 4);
}


function popup(){
  popup_vfmail = window.open( popup_url, "", atributos)

    popup_vfmail.blur() //esto esconde el popup (comentar si se quiere visible)
    window.focus() //esto devuelve el foco a la ventana actual

}
function Set_Cookie( name, value, expires, path, domain, secure )
{
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}

function Get_Cookie( check_name ) {
        // first we'll split this cookie up into name/value pairs
        // note: document.cookie only returns name=value, not the other components
        var a_all_cookies = document.cookie.split( ';' );
        var a_temp_cookie = '';
        var cookie_name = '';
        var cookie_value = '';
        var b_cookie_found = false; // set boolean t/f default f

        for ( i = 0; i < a_all_cookies.length; i++ )
        {
                // now we'll split apart each name=value pair
                a_temp_cookie = a_all_cookies[i].split( '=' );


                // and trim left/right whitespace while we're at it
                cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

                // if the extracted name matches passed check_name
                if ( cookie_name == check_name )
                {
                        b_cookie_found = true;
                        // we need to handle case where cookie has no value but exists (no = sign, that is):
                        if ( a_temp_cookie.length > 1 )
                        {
                                cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
                        }
                        // note that in cases where cookie is initialized but no value, null is returned
                        return cookie_value;
                        break;
                }
                a_temp_cookie = null;
                cookie_name = '';
        }
        if ( !b_cookie_found )
        {
                return null;
        }
}
</script>
Hola me e roto la cabeza buscando por horas en google y no hallo la solucion

yo deseo colocar una ventana de alerta que se muestre una unica vez al visitante y no a cada rato que el regrese a esa seccion, se que es con javacript y cookies como aqui puedo apreciar, pero no he hallado la forma de adaptarlo a lo que deseo, mi codigo orginal es este :

mi primera opcion:

<script type="text/javascript">
<!--
var answer = confirm ("ADVERTENCIA: Haga clic en ACEPTAR para entrar, o clic en CANCELAR para salir.")
if (!answer)
window.location="http://www.google.com"
//-->
</script>



mi segunda opcion opcion:

<script>
<!--
function checkAGE()
{
if (!confirm
("ADVERTENCIA: Haga clic en ACEPTAR para entrar, o clic en CANCELAR para salir"))
history.go(-1);return " "}
document.writeln(checkAGE())
// -->
</script>


luego intente esto, pero no me funciono, es que no se como llamar a la ventanita alerta:

<SCRIPT LANGUAGE="JavaScript">

<!-- Begin
var expDays = 1;

var answer = confirm ("ADVERTENCIA: Haga clic en ACEPTAR para entrar, o clic en CANCELAR para salir.")
if (!answer)
window.location="http://www.google.com"

function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function amt(){
var count = GetCookie('count')
if(count == null) {
SetCookie('count','1')
return 1
}
else {
var newcount = parseInt(count) + 1;
DeleteCookie('count')
SetCookie('count',newcount,exp)
return count
}
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function checkCount() {
var count = GetCookie('count');
if (count == null) {
count=1;
SetCookie('count', count, exp);

window.open(answer);

}
else {
count++;
SetCookie('count', count, exp);
}
}
// End -->
</script>


tambien se me ocurrio que siguiendo mi opcion 2, hacer que en lugar de poner window.open(answer); tratar de llamar a la otra funcion, pero igual nada de nada, ya me canse de intentar y sin resultados, podria alguien ayudarme y decirme cual seria el script correcto para lograr lo que deseo.

por ahi halle un script que dice es usando PHP session pero en mi caso no tengo BD como para iniciar session, asi que esa opcion no creo me sirva.

espero su ayuda

Jose Luis