Ideando

abril 27, 2007

Manejo de objetos con Javascript

Filed under: JavaScript, programacion — mrodriguez @ 5:19 pm

Me encontré un documento muy interesante acerca del manejo de objetos con javascript, visto por un desarrollador: http://msdn.microsoft.com/msdnmag/issues/07/05/JavaScript/Default.aspx?loc=es

Mas información útil en: http://www.insesys.com.mx

febrero 21, 2007

Framework javascript para aplicaciones RIA

Filed under: JavaScript, programacion — mrodriguez @ 4:44 pm

En la revista .code me encontré con esta recomendación:

http://openrico.org/rico/home.page

Es un framework para javascript bastante útil, está bastante interesante y es altamente probable que en un futuro proyecto utilice el drag & drop que este framework maneja

Es open-source y está en javascript.

Actualización:  Me encontré está página con algo semejante

http://script.aculo.us/

febrero 20, 2007

Función para validar que un string sea una dirección de correo

Filed under: JavaScript, programacion — mrodriguez @ 6:51 pm

Hace un rato me llegó a mi correo una función con la que se puede validar que una cadena de caracteres cumpla con el formato de cuenta de correo. Como se que en algún momento la voy a ocupar la dejo aquí como referencia:

var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
function checkmail(e){
var returnval=emailfilter.test(e.value)
if (returnval==false){
alert(“Please enter a valid email address.”)
e.select()
}
return returnval
}

Mas información útil en: http://www.insesys.com.mx

febrero 18, 2007

¿Como montar un div encima de un select box?

Filed under: JavaScript, programacion — mrodriguez @ 12:03 pm

Hace un rato leyendo mis correos me encontré con una pregunta interesante. ¿Como montar un div encima de un select box? Me recordó la ocasión en la que tuve que hacer esto y lo solucioné escondiendo el select box, pero volví a darle una revisada a internet y ahora al parecer ya hay solución (será que siempre la hubo), me encontré un enlace donde presentan una historia semejante a la mia, pero con una solución alternativa que realmente desconocía, me gustó lo bien que lo explican, dejo el enlace para futuras referencias:

http://dotnetjunkies.com/WebLog/jking/archive/2003/07/21/488.aspx

En la siguiente página, viene ya trabajando el concepto que se explica en el enlace anterior.

http://esdi.excelsystems.com/wsexmp/divdrp.pgm?wsnum=00110

Aquí está la opinión de Microsoft al respecto:

http://support.microsoft.com/default.aspx?scid=KB;en-us;q177378

La clave está en los iframes (tengo que leer mas de esto) y los windowed controls (quizá mas adelante escriba lo que sé de estos).

Mas información útil en: http://www.insesys.com.mx

febrero 13, 2007

Archivos JSE, codificar y decodificar archivos con javascript

Filed under: JavaScript, programacion — mrodriguez @ 4:42 pm

Ayer un compañero de trabajo me preguntaba que era un archivo con extensión JSE y como decodificarlo, después de buscar un poco en internet, me encontré un script vb, con el que se puede codificar y descodificar un archivo js o jse, dependiendo el caso.

Dejo aquí la referencia a la página para futuras ocasiones: http://gogogadgetscott.info/computers/scripts/scriptdencoder

También anexo el código que en esta página ponen, para evitar perderlo.

‘==============================================
‘NAME: ScriptDEcoder.vbs

‘AUTHOR: Scott Greenberg
‘COMPANY: SG Technology
‘WEBSITE: http://gogogadgetscott.info
‘Date : 4/23/2004
‘VERSION: 1.0

‘COMMENT:
‘Recognized file extensions:
‘vbs vbe js jse htm html asa asp cdx
‘Decode procces derived from VBE decoder
‘by: Jean-Luc Antoine
http://www.interclasse.com/scripts/decovbe.php

‘Copyright� 2004. SG Technology. All rights reserved.
‘==============================================
Const TagInit = “#@~^”
Const TagFin = “==^#~@”
‘Get And check command arguments
Set oArgs = WScript.Arguments
If oArgs.Count = 0 Then
DisplayHelp “”
WScript.Quit
End If
‘Check If user requests help
For Each Arg In oArgs
If InStr (Arg, “?”) > 0 Then
DisplayHelp “”
WScript.Quit
End If
Next
Set oFSO = CreateObject (“Scripting.FileSystemObject”)
‘Create encoder object
Set oEncoder = CreateObject (“Scripting.Encoder”)
For Each Arg In oArgs
‘Check If argument contains path To a valid file
If oFSO.FileExists(Arg) Then
sFileExt = oFSO.GetExtensionName(Arg)
ValidExts = Array (“vbs”, “js”, “jse”, “vbe”, “htm”, “html”, “asa”, “asp”, “cdx”)
For Each Ext In ValidExts
If Ext = sFileExt Then
DisplayHelp Process(Arg)
Exit For
End If
Next
Else
DisplayHelp “Argument Is Not a valid file.”
End If
Next
DisplayHelp “Process Is complete”
‘Clean up
Set oEncoder = Nothing
Set oFSO = Nothing
Set oArgs = Nothing
‘Process file
Function Process(sFileIn)
‘Get In file extension
sSourceExt = “.” & oFSO.GetExtensionName(sFileIn)
sSourceFile = oFSO.GetBaseName(sFileIn)
‘Read file into buffer
Set fIn = oFSO.OpenTextFile(sFileIn)
sSource = fIn.ReadAll
fIn.Close : Set fIn = Nothing
‘Run process
If InStr (sSource, TagInit) = 0 Then
Decoded = True
End If
If Decoded = True Then
sOut = Encode(sSource, sSourceExt)
Select Case sSourceExt
Case “.vbs”
sOutExt = “.vbe”
Case “.js”
sOutExt = “.jse”
Case Else
sOutExt = sSourceExt
End Select
Process = “File “&sSourceFile&sSourceExt&” encoded And saved As “&sSourceFile&sOutExt&”.”
Else
sOut = Decode(sSource, sSourceExt)
Select Case sSourceExt
Case “.vbe”
sOutExt = “.vbs”
Case “.jse”
sOutExt = “.js”
Case Else
sOutExt = sSourceExt
End Select
Process = “File “&sSourceFile&sSourceExt&” decoded And saved As “&sSourceFile&sOutExt&”.”
End If
‘Write New file
sFileOut = oFSO.GetParentFolderName(sFileIn) & “\” & _
sSourceFile & sOutExt
‘* Fix To overwrite file
Set fOut = oFSO.OpenTextFile(sFileOut, 2, True )
fOut.Write sOut
fOut.close : Set fOut = Nothing
End Function
‘Encode buffer
Function Encode(sSource, sSourceExt)
‘Encode source
Encode = oEncoder.EncodeScriptFile(sSourceExt, sSource, 0, 0)
Set oEncoder = Nothing
End Function
‘Decode helper
Function Decode(sSource, sSourceExt)
Do
FinCode = 0
‘Find the start positon of encoded data
StartCode = InStr (sSource, TagInit)
If StartCode > 0 Then
‘If “==” the marker follows
If (InStr (StartCode, sSource, “==”) – StartCode) = 10 Then
‘Find the End positon of encoded data
FinCode = InStr (StartCode, sSource, TagFin)
If FinCode > 0 Then
‘Decode encoded data
sSource = Left (sSource, StartCode – 1) & _
DecodeH(Mid (sSource, StartCode + 12, FinCode – StartCode – 12 – 6)) & _
Mid (sSource, FinCode + 6)
End If
End If
End If
Loop Until FinCode = 0
If Asc (Right (sSource, 1)) = 0 Then sSource = Left (sSource, Len (sSource) – 1)
sSource = Replace (sSource,”.Encode”,””)
Decode = sSource
End Function
‘Decode buffer
Function DecodeH(Chain)
Dim tDecode(127)
Const Combination = “1231232332321323132311233213233211323231311231321323112331123132”
For i = 9 To 127
tDecode(i) = “JLA”
Next
For i = 9 To 127
ChainsTemp = Mid (oEncoder.EncodeScriptFile(“.vbs”, String (3, i), 0, “”), 13, 3)
For j = 1 To 3
c = Asc (Mid (ChainsTemp, j, 1))
If Not ((c = 42) And (i = 62)) Then
tDecode(c) = Left (tDecode(c), j – 1) & Chr (i) & Mid (tDecode(c), j + 1)
End If
Next
Next
Chain = Replace (Replace (Chain, “@&”, Chr (10)), “@#”, Chr (13))
Chain = Replace (Replace (Chain,”@*”,”>”), “@!”, “<“)
Chain = Replace (Chain,”@$”,”@”)
index = -1
For i = 1 To Len (Chain)
c = Asc (Mid (Chain, i, 1))
If c < 128 Then index = index + 1
If (c = 9) Or ((c > 31) And (c < 128)) Then
If (c <> 60) And (c <> 62) And (c <> 64) Then
Chain = Left (Chain,i – 1) & _
Mid (tDecode(c), Mid (Combination, (index Mod 64) + 1, 1), 1) & _
Mid (Chain,i + 1)
End If
End If
Next
DecodeH = Chain
End Function
‘Sub To display help message And any exceptions
Sub DisplayHelp(msg)
CRLF = Chr (13) + Chr (10)
If msg = “” Then msg = msg & ” — About this script —” & CRLF & _
“Recognized file extensions: ” & CRLF & _
” vbs vbe js jse htm html asa asp cdx” & CRLF & CRLF & _
“<file(s) To encode/decode>” & CRLF & _
“? <help>”
MsgBox msg, vbInformation , “ScriptDEcoder”
End Sub

Mas información útil en: http://www.insesys.com.mx

febrero 7, 2007

Identificando si el navegador acepta cookies

Filed under: JavaScript, programacion — mrodriguez @ 2:49 am

Otra función que para mi es muy útil es detectar si el navegador donde se presenta la página acepta cookies, para esto tengo una función mas simple que la anterior:

function DefineAceptaCookies(){
var aceptaCookies;
aceptaCookies = navigator.cookieEnabled;
return(aceptaCookies)
}

Esta función me retorna un true si el navegador acepta cookies o false si el navegador no tiene está opción habilitada.

Como identificar el navegador (browser) en el que se presenta la página, usando javascript

Filed under: JavaScript, programacion — mrodriguez @ 2:22 am

Este es un código que a mi me sirve mucho cuando se trata de identificar el tipo de browser que está presentando mi página:

function DetectaBrowser(){
var tipoBrowser;
if (navigator.userAgent.indexOf(“MSIE”)<0){
if (navigator.userAgent.indexOf(“Opera”)<0){
tipoBrowser = “Mozilla”;
}
else{
tipoBrowser = “Opera”;
}
}
else {
tipoBrowser = “Ms”;
}
return tipoBrowser
}
Utilizar está función es bastante sencillo, pues no requiere de ningún parámetro y solo retorna un string con el tipo de navegador que está usando el usuario que accesó a está página.
Tengo que hacer una aclaración, la función, como la mayoría de las cosas que hay en este blog, cumple mi necesidad de identificar que navegador usa, sin importarme la versión de este; Seguramente habrá momentos en los que se requiera mas información del cliente, si este fuera el caso el objeto navigator (de javascript) puede darte mas información.

Acerca del objeto navigator, puedes encontrar más información en: http://www.devguru.com/Technologies/ecmaScript/quickref/window.html

Mas información útil en: http://www.insesys.com.mx

febrero 2, 2007

Función para determinar el nombre del día de la semana o el nombre del mes del año

Filed under: JavaScript, programacion — mrodriguez @ 11:55 pm

Estas funciones son bastante sencillas, pero en algún momento podrían serle útil a alguien:

Function NombreDiaDelaSemana(ByVal DiaDeLaSemana As Integer) As String
Dim ARR_DIA() As String = {“Domingo”, “Lunes”, “Martes”, _
“Miércoles”, “Jueves”, “Viernes”, “Sábado”}
Return (ARR_DIA(DiaDeLaSemana))
End Function

Function NombreMesDelAnio(ByVal MesDelAnio As Integer) As String
Dim ARR_MESES() As String = {“Enero”, “Febrero”, “Marzo”, _
“Abril”, “Mayo”, “Junio”, _
“Julio”, “Agosto”, “Septiembre”, _
“Octubre”, “Noviembre”, “Diciembre”}
Return (ARR_MESES(MesDelAnio))
End Function

En la primera función se le envia un entero que indicaría el número del día del que queremos obtener el nombre; para obtener el mes sería usando la segunda función pero enviandole el número del mes.

Aunque están hechas para VB, el concepto sería el mismo para casí cualquier lenguaje.

Mas información útil en: http://www.insesys.com.mx

enero 24, 2007

Detectar cuando se este cerrando una ventana usando Javascript

Filed under: JavaScript, programacion — mrodriguez @ 5:15 pm

Esto puede lograrse mediante el uso del evento onbeforeunload, como se puede ver en este ejemplo:

<HTML>
<HEAD>
<SCRIPT>
function Cerrar() {
alert(‘Mensaje’)
event.returnValue = “Te estás saliendo del sitio…”;
}
</SCRIPT>
</HEAD>
<BODY onbeforeunload=”Cerrar()”>
<a href=”http://www.google.com/&#8221; mce_href=”http://www.google.com/”>Google</a&gt;
</BODY>
</HTML>

Mas información útil en: http://www.insesys.com.mx

Blog de WordPress.com.