Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/09/2009, 04:10
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Abrir pop-up si hay una nueva noticia

Hola

No es el foro apropiado pero aquí lo tienes. Espero que te ayude

VentanaMessenger.html

Código javascript:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml"lang="es" xml:lang="es">
  3. <head>
  4. <meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
  5. <script type="text/javascript" src="./leerjsdeajax.js"></script>
  6. <script type="text/javascript">
  7.  function creaAjax(){
  8.     var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
  9.     var ajax = false;
  10.     for(var i=0 ; !ajax && i<ajaxs.length ; i++){
  11.         try{
  12.             ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
  13.         }
  14.         catch(e) {
  15.             ajax = false;
  16.         }
  17.     }
  18.     if(!ajax && typeof XMLHttpRequest!='undefined') {
  19.         ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
  20.     }
  21.     return ajax;
  22. }
  23.  
  24.  
  25. function Ventana() {
  26. var ajax=creaAjax();
  27. var objetosel = document.getElementById("contenedor");
  28. ajax.open('GET','ventanamessenger_ajax.asp',true);
  29. ajax.send(null);
  30. ajax.onreadystatechange = function() {
  31.  
  32.         if (ajax==null){
  33.         alert ("Tu navegador web no soporta AJAX!");
  34.         return;
  35.     }
  36.  
  37.         if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) {
  38.                                         objetosel.innerHTML = "Cargando ...";
  39.             }
  40.  
  41.                 else if (ajax.readyState==4){
  42.                     if(ajax.status==200){  
  43.  
  44.         var scs=ajax.responseText.extractScript();
  45.             objetosel.innerHTML = ajax.responseText.stripScript();
  46.         scs.evalScript();
  47.  
  48.  
  49.                    }
  50.                     else if (ajax.status==404)
  51.                                              {
  52.  
  53.                                     objetosel.innerHTML = "La dirección no existe";
  54.                                              }
  55.                                      else
  56.                                              {
  57.                                     objetosel.innerHTML = "Se ha producido un error";
  58.                                              }
  59.                                     }
  60.                   }
  61.        
  62. }
  63.  
  64. window.setInterval("Ventana()",90000);
  65. window.onload = function () {setTimeout("Ventana()",1000);};
  66. </script>
  67. <style type="text/css">
  68. #VentanaTipoMsgr { position:fixed; z-index:15000; right:2px; bottom:-2px; padding:0px; width:207px; height:123px; background:transparent url(cuerpo_ventanamodal.gif); }  
  69. body > div#VentanaTipoMsgr { position:fixed; z-index:15000; right:2px; bottom:-2px; padding:0px; width:207px; height:123px; background:transparent url(cuerpo_ventanamodal.gif); }
  70. #VentanaTipoMsgr a { font-family:tahoma; font-size:9px; color:#59616E; font-weight:bold; text-decoration:none; }
  71. #btn_vm_paginador a{ background-color:#FFFFFF; color:#59616E; font-family:Arial, Helvetica, sans-serif; font-size:9px; font-weight:900;text-decoration:none;padding:2px; border: 1px solid #C9C9C9;border-width: 1px 1px 1px 1px; }
  72. </style>
  73. </head>
  74. <body>
  75. <table border="1" width="800px">
  76. <tr height="500px">
  77. <td>Contenido de la página</td>
  78. </tr>
  79. </table>
  80.  
  81.  
  82. <div id="contenedor">
  83. </div>
  84.  
  85. <div id="VentanaTipoMsgr" style="bottom:-200px; display:none;">
  86. <div style="position:absolute; top:3px; right:5px;cursor: pointer;"><img id="btn_vm_cerrar" src="cuerpo_cerrar.gif" width="15px" height="20px" border="0" /></div>
  87. <div id="CabezaMsg" style="padding:6px 6px 6px 3px; text-align:left; font-family:tahoma; font-size:11px; font-weight:bold; color:#000000;"></div>
  88. <div id="CuerpoMsg" style="position:absolute; top:30px; right:5px; left:5px; text-align:left; color: #59616E; font-size: 9px; font-family:verdana;"></div>
  89. <div style="clear:both;"></div>
  90. </div>
  91.  
  92.  
  93. </body>
  94. </html>


leerjsdeajax.js

Código javascript:
Ver original
  1. var tagScript = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
  2. /**
  3. * Eval script fragment
  4. * @return String
  5. */
  6. String.prototype.evalScript = function()
  7. {
  8.         return (this.match(new RegExp(tagScript, 'img')) || []).evalScript();
  9. };
  10. /**
  11. * strip script fragment
  12. * @return String
  13. */
  14. String.prototype.stripScript = function()
  15. {
  16.         return this.replace(new RegExp(tagScript, 'img'), '');
  17. };
  18. /**
  19. * extract script fragment
  20. * @return String
  21. */
  22. String.prototype.extractScript = function()
  23. {
  24.         var matchAll = new RegExp(tagScript, 'img');
  25.         return (this.match(matchAll) || []);
  26. };
  27. /**
  28. * Eval scripts
  29. * @return String
  30. */
  31. Array.prototype.evalScript = function(extracted)
  32. {
  33.                 var s=this.map(function(sr){
  34.                 var sc=(sr.match(new RegExp(tagScript, 'im')) || ['', ''])[1];
  35.                 if(window.execScript){
  36.                 window.execScript(sc);
  37.                 }
  38.                 else
  39.                 {
  40.                  window.setTimeout(sc,0);
  41.                 }
  42.                 });
  43.                 return true;
  44. };
  45. /**
  46. * Map array elements
  47. * @param {Function} fun
  48. * @return Function
  49. */
  50. Array.prototype.map = function(fun)
  51. {
  52.         if(typeof fun!=="function"){return false;}
  53.         var i = 0, l = this.length;
  54.         for(i=0;i<l;i++)
  55.         {
  56.                 fun(this[i]);
  57.         }
  58.         return true;
  59. };


ventanamessenger_ajax.asp


Código asp:
Ver original
  1. ' Nos conectamos a la bd
  2. ' Hacemos la consulta
  3.  
  4. set rs = oConn.Execute(SQL)
  5.  
  6. registros = rs.getrows()
  7. rs.Close
  8. Set rs = Nothing
  9. oConn.Close
  10. Set oConn = Nothing
  11.  
  12. TextoMensaje = ""
  13. IF UBound(registros,2) = 0 then
  14. TextoMensaje =  "'De: <a href=autor target=_blank>" & registros(De,0) & "</a><br />Asunto: <a href=mensaje target=_blank>" & registros(Asunto,0) & "</a><br/>Mensaje: " & Mid(registros(Contenido,0),1,80) &"'"
  15.  
  16. ELSE
  17.  
  18. For i = 0 to UBound(registros,2)
  19. If i <> 0 then
  20. TextoMensaje = TextoMensaje & ","
  21. End If
  22.  
  23. If i = 0 then ' es el primero de varios
  24. TextoMensaje = TextoMensaje & "'De: <a href=\'autor\' target=\'_blank\'>" & registros(De,i) & "</a><br />Asunto: <a href=\'mensaje\' target=\'_blank\'>" & registros(Asunto,i) & "</a><br/>Mensaje: " & Mid(registros(Contenido,i),1,80) &"<br /><br /><div id=\'btn_vm_paginador\' align=\'center\'><a href=\'javascript:void(0);\' onclick=\'vm_paginador("&i+1&");\'>Siguiente &raquo;</a></div>'"
  25. Elseif i < UBound(registros,2) then
  26. 'TextoMensaje = TextoMensaje & "'De: <a href=\'autor\' target=_blank\'>" & registros(De,i) & "</a><br />Asunto: <a href=\'mensaje\' target=\'_blank\'>" & registros(Asunto,i) & "</a><br/>Mensaje: " & Mid(registros(Contenido,i),1,80) &"<br /><br /><div id=\'btn_vm_paginador\' align=\'center\' onclick=\'vm_paginador("&i-1&");\'>&laquo; Anterior</div>&nbsp;&nbsp;&nbsp;<div id=\'btn_vm_paginador\' align=\'center\'  onclick=\'vm_paginador("&i+1&");\'>Siguiente &raquo;</div>'"
  27. TextoMensaje = TextoMensaje & "'De: <a href=\'autor\' target=_blank\'>" & registros(De,i) & "</a><br />Asunto: <a href=\'mensaje\' target=\'_blank\'>" & registros(Asunto,i) & "</a><br/>Mensaje: " & Mid(registros(Contenido,i),1,80) &"<br /><br /><div id=\'btn_vm_paginador\' align=\'center\'><a href=\'javascript:void(0);\' onclick=\'vm_paginador("&i-1&");\'>&laquo; Anterior</a>&nbsp;&nbsp;&nbsp;<a href=\'javascript:void(0);\' onclick=\'vm_paginador("&i+1&");\'>Siguiente &raquo;</a></div>'"
  28. Else ' es el último
  29. TextoMensaje = TextoMensaje & "'De: <a href=\'autor\' target=\'_blank\'>" & registros(De,i) & "</a><br />Asunto: <a href=\'mensaje\' target=\'_blank\'>" & registros(Asunto,i) & "</a><br/>Mensaje: " & Mid(registros(Contenido,i),1,80) &"<br /><br /><div id=\'btn_vm_paginador\' align=\'center\'><a href=\'javascript:void(0);\' onclick=\'vm_paginador("&i-1&");\'>&laquo; Anterior</a></div>'"
  30. End If
  31.  
  32. Next 'i
  33. END IF
  34. %>
  35.  
  36. <script type="text/javascript">
  37. var msg = new Array(<%=TextoMensaje%>);
  38. var Ventana_Modal = {};
  39. Ventana_Modal.banner = {
  40.  posicion : {
  41.  bajar_pos : '-127',
  42.  subir_pos : '-4'
  43.  }
  44. };
  45. Ventana_Modal.banner.hoja = 'posicion';
  46. // Variables Globales
  47. var vmDivID = 'VentanaTipoMsgr';
  48. var Retraso = 5 * msg.length;
  49.  
  50.  
  51. vm_retraso(Retraso);
  52.  
  53. //--[Funciones]-----------------------------------------------------------------//
  54.  
  55. var btn_vm_cerrar_elem = document.getElementById('btn_vm_cerrar');
  56. btn_vm_cerrar_elem.onclick = function (){
  57. vm_mover(vmDivID,Ventana_Modal.banner[Ventana_Modal.banner.hoja].bajar_pos, "' + msg[0] + '",'bajar');
  58. return false;
  59. }
  60.  
  61.  
  62. function vm_paginador(mensajeID) {
  63.  var soportado = (document.getElementById);
  64. if (!soportado) return;
  65. var elMsg = document.getElementById('CuerpoMsg');
  66. elMsg.innerHTML = msg[mensajeID];
  67. }
  68.  
  69.  
  70. function vm_retraso(seg){
  71. seg = seg || 0;
  72. setTimeout('vm_mover(vmDivID,' + Ventana_Modal.banner[Ventana_Modal.banner.hoja].subir_pos + ', "' + msg[0] + '");',1000 * seg);
  73. setTimeout('vm_mover(vmDivID,' + Ventana_Modal.banner[Ventana_Modal.banner.hoja].bajar_pos + ', "' + msg[0] + '",\'bajar\');',15000 * msg.length);
  74. }
  75.  
  76. var elemento
  77. var alto
  78. var leyenda
  79. function vm_mover(elemID,x,txt,direccion){
  80. elemento = elemID
  81. alto = x
  82. leyenda =  txt
  83.  
  84. var soportado = (document.getElementById);
  85. if (!soportado) return;
  86. var DIVruta = document.getElementById(elemento);
  87. var Cortina = parseInt(DIVruta.style.bottom);
  88. var cabecera = document.getElementById('CabezaMsg');
  89. var texto = document.getElementById('CuerpoMsg');
  90.  
  91. DIVruta.style.display = 'block';
  92. if(direccion == 'bajar'){
  93.  
  94. if(Cortina > x){
  95. Cortina -= 5;
  96. DIVruta.style.bottom = Cortina + 'px';
  97. setTimeout('vm_mover(elemento,alto,leyenda,\'bajar\');',15);
  98. }
  99. }else{
  100. if(Cortina < x){
  101. Cortina += 5;
  102. DIVruta.style.bottom = Cortina + 'px';
  103. cabecera.innerHTML = "Tienes (<span style='color:#FF0000;'><%=UBound(registros,2)+1%></span>) mensajes sin leer";
  104. texto.innerHTML = leyenda;
  105. setTimeout('vm_mover(elemento, alto,leyenda);',15);
  106. }
  107.  }
  108. }
  109. </script>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />