En esta web:
http://javascripts.astalaweb.com/Calendarios/1_Calendarios.asp
En la opción calendario con recordatorios hay algo parecido a lo que busco.
Lo malo es que al copiar el código me copia los créditos y todas esas cosas que no me interesan, las he podido quitar, pero es que además me desconfigura la web, ya que me desplaza el box derecho hacia abajo, y eso ya no se como cambiarlo.
Además, los recordatorios se guardan durante 24 horas y yo quisiera que permaneciesen para siempre, y además, no me deja ver más del mes presente.
Copio pego el código (ya sin tanta publicidad):
<title>Calendario con recordatorios</title>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- to hide script contents from old browsers
// Cookie Functions
// Written by: Bill Dortch, hIdaho Design
// The following functions are released to the public domain.
// "Internal" function to encode cookie value. This permits cookies to
// contain whitespace, comma and semicolon characters.
function encode (str) {
var dest = "";
var len = str.length;
var index = 0;
var code = null;
for (var i = 0; i < len; i++) {
var ch = str.charAt(i);
if (ch == " ") code = "%20";
else if (ch == "%") code = "%25";
else if (ch == ",") code = "%2C";
else if (ch == ";") code = "%3B";
else if (ch == "\b") code = "%08";
else if (ch == "\t") code = "%09";
else if (ch == "\n") code = "%0A";
else if (ch == "\f") code = "%0C";
else if (ch == "\r") code = "%0D";
if (code != null) {
dest += str.substring(index,i) + code;
index = i + 1;
code = null;
}
}
if (index < len)
dest += str.substring(index, len);
return dest;
}
//
// "Internal" function to decode cookie values.
//
function decode (str) {
var dest = "";
var len = str.length;
var index = 0;
var code = null;
var i = 0;
while (i < len) {
i = str.indexOf ("%", i);
if (i == -1)
break;
if (index < i)
dest += str.substring(index, i);
code = str.substring (i+1,i+3);
i += 3;
index = i;
if (code == "20") dest += " ";
else if (code == "25") dest += "%";
else if (code == "2C") dest += ",";
else if (code == "3B") dest += ";";
else if (code == "08") dest += "\b";
else if (code == "09") dest += "\t";
else if (code == "0A") dest += "\n";
else if (code == "0C") dest += "\f";
else if (code == "0D") dest += "\r";
else {
i -= 2;
index -= 3;
}
}
if (index < len)
dest += str.substring(index, len);
return dest;
}
//
// "Internal" function to return the decoded value of a cookie
//
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return decode(document.cookie.substring(offset, endstr));
}
//
// Function to return the value of the cookie specified by "name".
// name - String object containing the cookie name.
//
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 to create or update a cookie.
// name - String object object containing the cookie name
// value - String object containing the cookie value. May contain
// any valid sting characters, including whitespace, commas and quotes.
// expires - Date object containing the expiration data of the cookie,
// or null to expire the cookie at the end of the current session.
//
function SetCookie (name, value, expires) {
document.cookie = name + "=" + encode(value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString()));
}
// Function to delete a cookie. (Sets expiration date to current date/time)
// name - String object containing the cookie name
//
function DeleteCookie (name) {
var exp = new Date();
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
//
// Example
//
function intro()
{
document.write ("<CENTER>");
document.writeln("<BR>");
document.write ("<h3>");
document.write ("Calendario con recordatorios");
document.writeln("</h3>");
document.writeln("</CENTER>");
document.writeln("<h4>Cómo usar este calendario:</h4>");
document.writeln("<ul><li>Pulsa en una fecha para añadir un recordatorio");
document.writeln(" <li>Pulsa en esa fecha para ver el recordatorio");
document.writeln(" <li>Refresca la pantalla para ver las fechas con sus recordatorios");
document.writeln("</ul>");
document.writeln("<h4>Notas:</h4>");
document.writeln("<ul><li>Interfaz de usuario sencillo");
document.writeln(" <li>No se puede borrar un recordatorio");
document.writeln(" <li>Los recordatorios desaparecen en 24 horas");
document.writeln("</ul>");
}
function arrayOfDaysInMonths(isLeapYear)
{
this[0] = 31;
this[1] = 28;
if (isLeapYear)
this[1] = 29;
this[2] = 31;
this[3] = 30;
this[4] = 31;
this[5] = 30;
this[6] = 31;
this[7] = 31;
this[8] = 30;
this[9] = 31;
this[10] = 30;
this[11] = 31;
}
function daysInMonth(month, year)
{
// do the classic leap year calculation
var isLeapYear = (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
var monthDays = new arrayOfDaysInMonths(isLeapYear);
return monthDays[month];
}
function calendar()
{
var monthNames = "JanFebMarAprMayJunJulAugSepOctNovDec";
var today = new Date();
var day = today.getDate();
var month = today.getMonth();
var year = today.getYear();
// figure out how many days this month will have...
var numDays = daysInMonth(month, year);
// and go back to the first day of the month...
var firstDay = today;
firstDay.setDate(1);
// and figure out which day of the week it hits...
var startDay = firstDay.getDay();
var column = 0;
// Start the calendar table
document.write("<CENTER>");
document.write("<TABLE BORDER>");
document.write("<TR><TH COLSPAN=7>");
document.write(monthNames.substring(3*month, 3*(month + 1)) + " " + year);
document.write("<TR><TH>Dom<TH>Lun<TH>Mar<TH>Mié<TH>Jue<TH>Vie<TH>Sáb");
// put blank table entries for days of week before beginning of the month
document.write("<TR>");
for (i=1; i < startDay; i++)
{
document.write("<TD>");
column++;
}
for (i=1; i <= numDays; i++)
{
// Write the day
var s = "" + i;
if ((GetCookie("d"+i) != null))
// s = s.fontcolor(document.vlinkColor);
s = s.fontcolor("#FF0000");
s = s.link("javascript:dayClick(" + i + ")")
document.write("<TD>" + s);
// Check for end of week/row
if (++column == 7)
{
document.write("<TR>"); // start a new row
column = 0;
}
}
document.write("</TABLE>");
document.writeln("</CENTER>");
}
////////////////////////////
//////// dayClick //////////
////////////////////////////
function dayClick(day)
{
var expdate = new Date ();
expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000)); // 24 hrs from now
var prefix = "d";
var theCookieName = prefix + day;
var theDayclickedReminder = GetCookie(theCookieName);
if (theDayclickedReminder != null) {
alert("El recordatorio para el día " + day + " es:" + theDayclickedReminder);
} // end if
if (confirm("¿Quieres entrar un recordatorio para el día " + day + " de este mes?"))
{
x = prompt("Entra un recordatorio para el día "+ day + " de este mes", theDayclickedReminder);
SetCookie (theCookieName, x, expdate);
} // end if
}
// --> <!-- end hiding contents from old browsers -->
</SCRIPT>
<title>Calendario con recordatorios</title>
<p align="center"><font face="Verdana"><b>Calendario con recordatorios</b>
</head>
</font>
<BODY>
<HTML>
</p>
<CENTER>
<center><font face=arial size="1">
Pulsa en un día del calendario para guardar un recordatorio o cita.
<br>
La próxima vez que hagas click en ese día, te mostrará ese recordatorio.
<br>
La información sólo se guarda durante 24 horas.<p>
<SCRIPT LANGUAGE="JavaScript">
<!-- to hide script contents from old browsers
// Write the intro
// Write the calendar
calendar();
document.write("<HR>");
intro();
// --> <!-- end hiding contents from old browsers -->
</SCRIPT><P>
<CENTER><P>
</td></tr>
</table>
</BODY>
</HTML>
editado por nixoweb: No hagas doble post porque dentro del foro esta prohibido. Existe la función Editar que esta en la esquina superior derecha de tu mensaje que permite editar tu post ya enviado