Artículos con la etiqueta 'javascript'
Retomando el mensaje Validar correo electrónico en Javascript y PHP , he aquí una clase agradable en JavaScript puede verificar y comprobar la dirección de correo electrónico. Su uso es muy sencillo, a pesar de que es un control del lado del cliente, a continuación, pasan fácilmente a la protección, usted puede deshabilitar Javascript (proponer petición en contra de esta posibilidad
Ahora todos los navegadores permiten JavaScript para evadir, a continuación, todos los controles asociados con - en el corto plazo no es algo en Internet, vea el Ajax
).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| / * @ ** Nombre: ckmail.js @ ** Descripción: Revisión de la sintaxis de correo electrónico @ ** Autor: = undo = Web ** @ author: http://www.undolog.com Autor ** @-mail: @ g.fazioli undolog.com - g (punto) Fazioli (a) undolog (punto) com @ ** Fecha: 21/09/2006 21:24 @ ** Versión: 1.0 * /
{ var = {oCKMail , __release: "1.0", , __filter: / ^ ([\ w-] + (: \ [\ w-] +) *.) @ ((:. [\ w-] + \) * \ w [\ w-] {0, 66}) \ ([az] {2,6} (:. \ [az] {2}).?) $ / i, , __username: "", , __domain: "", , __ext: "",
/ / HACER ( e ) { GetUserName: function (s) { this .__init ( e ) ) return ( this .__username ) ; if (this. __ init (e)) return (this. __ nombre de usuario); false ) ; return (false); },
/ / HACER ( e ) { GetDomain: function (s) { this .__init ( e ) ) return ( this .__domain ) ; if (this. __ init (e)) return (this. __ de dominio); false ) ; return (false); },
/ / HACER ( e ) { GetExtension: function (s) { this .__init ( e ) ) return ( this .__ext ) ; if (this. __ init (e)) return (this. __ ext); false ) ; return (false); },
/ / HACER ( e ) { __init: function (s) { ! this .__filter. test ( e ) ) return ( false ) ; si es una declaración (falsa) (__ el filtro de prueba (e)!..); e. split ( "@" ) ; var t = e split ("@").; t [ 0 ] ; este nombre de usuario __ = t [0].; t [ 1 ] ; este dominio __ = t [1].; .__domain. split ( "." ) ; .. t = __ división de dominios ("."); t [ 1 ] ; este __ ext = T [1].; true ) ; return (true); },
/ / HACER / / Sinopsis / / Check (y, extlist, domainlist); / / Se ejecuta una serie de controles estándar de un e-mail. / / Extlist - Puede pasar un segundo parámetro opcional que corresponde a una serie de extensiones que / / ¿Está permitido o excluidos (incluir / excluir de extensión) de acuerdo con el primer valor de la matriz, todas las / / Otro error será considerado. / / Por ejemplo. [Es cierto que "es", "com"] pase (incluye la lista) / / Por ejemplo. [False, "es", "com"] NO pasar (lista de exclusión) / / Si -1 no se tiene en cuenta / / DomainList - Se puede pasar un tercer parámetro que corresponde a un conjunto de dominios que / / Son admitidos o excluidos (incluir / excluir de dominio) de acuerdo con el primer valor de la matriz, toda la / / Otro error será considerado. / / Por ejemplo. [Es cierto que "alice.it", "mac.com"] pase (incluye la lista) / / Por ejemplo. [False, "alice.it", "mac.com"] no pasar (lista de exclusión) / / Si -1 no se tiene en cuenta / / ( e ) { de verificación: function (e) { this .__init ( e ) ) { if (this. __ init (e)) { / / Comprobar domainExt matriz comprobar arguments. length > 1 ) { if (argumentos. longitud> 1) { typeof ( arguments [ 1 ] ) == "object" ) { if (typeof argumentos ([1]) == "object") { arguments [ 1 ] [ 0 ] ) { // include list si los argumentos ([1] [0]) {/ / la lista de inclusión var i = 0 ; i < arguments [ 1 ] . length ; i ++ ) { for (var i = 0; i <argumentos [1] de longitud;. i + +) { this .__ext == arguments [ 1 ] [ i ] . toLowerCase ( ) ) return ( true ) ; if (ext == __ this. argumentos [1] [i] toLowerCase ().) return (true); } { // exclude list Else {} / / lista de exclusión var i = 0 ; i < arguments [ 1 ] . length ; i ++ ) { for (var i = 0; i <argumentos [1] de longitud;. i + +) { this .__ext == arguments [ 1 ] [ i ] . toLowerCase ( ) ) return ( false ) ; if (ext == __ this. argumentos [1] [i] toLowerCase ().) return (false); } true ) ; return (true); } false ) ; return (false); } } / / Comprobar amplia nombreDominio arguments. length > 2 ) { if (argumentos. longitud> 2) { typeof ( arguments [ 2 ] ) == "object" ) { if (typeof (argumentos [2]) == "object") { arguments [ 2 ] [ 0 ] ) { // include list (si los argumentos [2] [0]) {/ / la lista de inclusión var i = 1 ; i < arguments [ 2 ] . length ; i ++ ) { for (var i = 1, i <argumentos [2] de longitud;. i + +) { this .__domain == arguments [ 2 ] [ i ] . toLowerCase ( ) ) return ( true ) ; if (this. __ == argumentos de dominio [2] [i] toLowerCase ().) return (true); } { // exclude list Else {} / / lista de exclusión
var i = 1 ; i < arguments [ 2 ] . length ; i ++ ) { for (var i = 1, i <argumentos [2] de longitud;. i + +) { this .__domain == arguments [ 2 ] [ i ] . toLowerCase ( ) ) return ( false ) ; if (this. __ == argumentos de dominio [2] [i] toLowerCase ().) return (false); } true ) ; return (true); } false ) ; return (false); } } true ) ; // email correct return (true) / / e-mail correcta } false ) ; // error return (false) / error / } }; |
El objeto oCKMail ofrece varios métodos para llevar a cabo una serie paralela de los controles de la dirección, tales como la extensión, el dominio, etc ...
Para estar realmente seguro de si tiene PHP se puede añadir un control adicional y efectiva antes de ejecutar el mail() . Esta es la clase PHP útil para este propósito:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| / * @ ** Nombre: cckmail.php @ ** Descripción: Revisión de la sintaxis de correo electrónico @ ** Autor: = undo = Web ** @ author: http://www.undolog.com Autor ** @-mail: @ g.fazioli undolog.com - g (punto) Fazioli (a) undolog (punto) com @ ** Fecha: 21/09/2006 23:58 @ ** Versión: 1.0 ** EJEMPLOS ** ** ** / / Comprobar si hay una dirección de excepción de los e-mails con el dominio "e-lementi.com" y "mac.com" ** OCKMail CCKMail ** $ = new (); ** $ OCKMail-> check ($ email, NULL, array (falso, "e-lementi.com", "mac.com")); ** ** / / Comprobar si hay una dirección, incluyendo el correo electrónico con el dominio "e-lementi.com" y "mac.com" ** OCKMail CCKMail ** $ = new (); ** $ OCKMail-> check ($ email, NULL, array (true, "e-lementi.com", "mac.com")); ** ** / / Comprobar si hay una dirección de excepción de los e-mails con una "red", "en", "org" ** OCKMail CCKMail ** $ = new (); ** $ OCKMail-> check ($ email, array (falsa, "net", "en", "org")); ** HISTORIA ** / Registro de cambios ** * / ! function_exists ( 'checkdnsrr' ) ) { if ( function_exists ('checkdnsrr')) { ( $host , $type = '' ) { función de checkdnsrr ($ host, $ type ='') { ! empty ( $host ) ) { if ( vacio ($ host)) { $type == '' ) $type = "MX" ; if ($ tipo =='') $ type = "MX"; ( "nslookup -type= $type $host " , $output ) ; @ ejecutivo ("host tipo nslookup-= $ tipo $", $ salida); list ( $k , $line ) = each ( $output ) ) { mientras que ( la lista ($ k, $ linea) = Cada uno ($ salida)) { eregi ( "^ $host " , $line ) ) { if ( eregi ("^ $ host", $ linea)) { ; return true; } } ; return false; } } } / / la clase {CCKMail = "1.1" ; __release $ var = "1.1"; = false ; var $ status = false; ; var $ nombre de usuario; ; var $ dominio; ; var $ ext; / / CCKMail function () {} / / $e ) { función de _test ($ s) { status = false ; $ This-> estado = false; '/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/' ; $ P = '/ ^ + \ @ (\ [?) [A-Za-Z0-9 \ - \] + \ ([A-Za-z] {2,4} |... [0-9] {1,3}) (\]) $ / '?; preg_match ( $p , $e ) ) ) { if (( preg_match ($ p, $ e))) { explode ( "@" , $e ) ; $ T = explotar ("@", $ s); username = strtolower ( $t [ 0 ] ) ; $ This-> nombre de usuario = strtolower ($ t [0]); domain = strtolower ( $t [ 1 ] ) ; $ This-> domain = strtolower ($ t [1]); explode ( "." , $this -> domain ) ; $ T = explotar (, $ this - dominio> "."); ext = strtolower ( $t [ 1 ] ) ; $ This-> ext = strtolower ($ t [1]); / / checkdnsrr ( $this -> domain . '.' , 'MX' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> dominio, 'MX'). '.') $ this -> estado = true; checkdnsrr ( $this -> domain . '.' , 'A' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> dominio, 'A'). '.') $ this -> estado = true; checkdnsrr ( $this -> domain . '.' , 'CNAME' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> dominio, 'CNAME'). '.') $ this -> estado = true; } } / / $m , $e = NULL , $d = NULL ) { función de verificación ($ m, $ e = NULL, $ d = NULL) { _test ( $m ) ; $ This-> _test ($ m); $this -> status ) { if ($ this -> Estado) { / / Comprobar domainExt matriz comprobar ! is_null ( $e ) ) { if ( is_null ($ e)) { $e [ 0 ] ) { // include list if ($ e [0]) {/ / la lista de inclusión $i = 1 ; $i < sizeof ( $e ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ s); $ i + +) { $this -> ext == strtolower ( $e [ $i ] ) ) return ( true ) ; if ($ this -> ext == strtolower ($ e [$ i])) return (true); } { // exclude list Else {} / / lista de exclusión $i = 1 ; $i < sizeof ( $e ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ s); $ i + +) { $this -> ext == strtolower ( $e [ $i ] ) ) return ( false ) ; if ($ this -> ext == strtolower ($ e [$ i])) return (false); } true ) ; return (true); } false ) ; return (false); } / / Comprobar amplia nombreDominio ! is_null ( $d ) ) { if ( is_null ($ d)) { $d [ 0 ] ) { // include list if ($ d [0]) {/ / la lista de inclusión $i = 1 ; $i < sizeof ( $d ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ d); $ i + +) { $this -> domain == strtolower ( $d [ $i ] ) ) return ( true ) ; if ($ this -> dominio == strtolower ($ d [$ i])) return (true); } { // exclude list Else {} / / lista de exclusión $i = 1 ; $i < sizeof ( $d ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ d); $ i + +) { $this -> domain == strtolower ( $d [ $i ] ) ) return ( false ) ; if ($ this -> dominio == strtolower ($ d [$ i])) return (false); } true ) ; return (true); } false ) ; return (false); } true ) ; return (true); } false ) ; return (false); } } > |
Lo ineteressante es la capacidad de esta clase para conectarse a los servidores MX (véase checkdnsrr() ) para verificar la presencia del dominio. Así, además de ejecutar una comprobación de sintaxis en el correo electrónico se ejecuta un pasado de ping dominio real. Podemos decir que este método es 80% seguro ...
Más información ...
Aunque no se hizo un sitio enteramente en Flash, algunos componentes pueden producirse dentro de la página, tales como banderas, reclamo, los espectadores RSS, eco, etc ... entonces de una manera sencilla de comprobar si Flash está instalado y activo. Aquí se propone un método que no necesita más páginas, igual a lo propuesto por Adobe. Nuestro objetivo es resolver todo en una sola página.
La clase que aquí se presenta permite resolver el último problema también nacen con Explorer, o la activación de un control ActiveX. Para solucionar simplemente el uso de JavaScript para insertar el componente de Flash, justo lo que hace que nuestra clase.
Lo primero que necesitamos es una clase de JavaScript agradable que nos permite realizar todos los controles necesarios:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| <! - / * Detectar Flash ** Clase y Objeto Ruta insertFlash ** * /
{ var df = { , __release: "1.0", navigator. appVersion . indexOf ( "MSIE" ) != - 1 ) ? true : false ) , _isIE: ((appVersion navigator. indexOf ("MSIE") = - 1) verdad:.! falsa?) navigator. appVersion . toLowerCase ( ) . indexOf ( "win" ) != - 1 ) ? true : false ) , _isWin: (.. (appVersion navigator. toLowerCase () indexOf ("victoria") = - 1) verdad: falso?) navigator. userAgent . indexOf ( "Opera" ) != - 1 ) ? true : false ) , _isOpera: (.? (navigator. userAgent indexOf ("Opera") = - 1) verdad: falso)
( i ) { getSwfVer: function (i) { / / Las versiones de NS / Opera a partir de 3 comprobar la presencia del plug-in Flash serie de plug-in navigator. plugins != null && navigator. plugins . length > 0 ) { if (plug-ins del navegador. navegador! = null &&. plugins. de longitud> 0) { navigator. plugins [ "Shockwave Flash 2.0" ] || navigator. plugins [ "Shockwave Flash" ] ) { if (navigator. plugins ["Shockwave Flash 2.0"] | |. navegador de plugins ["Shockwave Flash"]) { navigator. plugins [ "Shockwave Flash 2.0" ] ? " 2.0" : "" ; var = swVer2 navegador de plugins ["Shockwave 2.0 Flash"] "2.0".? ""; navigator. plugins [ "Shockwave Flash" + swVer2 ] . description ; var = navegador flashDescription plugins ["Shockwave Flash" + swVer2] descripción..; flashDescription. split ( " " ) ; . var = descArray flashDescription split (""); descArray [ 2 ] . split ( "." ) ; . var = tempArrayMajor descArray [2] split ("."); tempArrayMajor [ 0 ] ; var VersionMajor tempArrayMajor = [0]; tempArrayMajor [ 1 ] ; VersionMinor tempArrayMajor var = [1]; descArray [ 3 ] != "" ) var tempArrayMinor = descArray [ 3 ] . split ( "r" ) ; if (descArray [3] = "") var = tempArrayMinor descArray [3] de división. ("r"); tempArrayMinor = descArray [ 4 ] . split ( "r" ) ; otra var = tempArrayMinor descArray [4] split ("r").; / / tempArrayMinor [ 1 ] > 0 ? tempArrayMinor [ 1 ] : 0 ; versionRevision tempArrayMinor var = [1]> 0 tempArrayMinor [1]: 0; versionMajor + "." + versionMinor + "." + versionRevision ; var = flashVer VersionMajor VersionMinor + + + + versionRevision "." "."; var flashVer = - 1 ; FlashVer} else var = - 1; } navigator. userAgent . toLowerCase ( ) . indexOf ( "webtv/2.6" ) != - 1 ) flashVer = 4 ; else if (userAgent navegador .. toLowerCase () indexOf ("webtv/2.6") = - 1.!) flashVer = 4; navigator. userAgent . toLowerCase ( ) . indexOf ( "webtv/2.5" ) != - 1 ) flashVer = 3 ; else if (userAgent navegador .. toLowerCase () indexOf ("webtv/2.5") = - 1.!) flashVer = 3; navigator. userAgent . toLowerCase ( ) . indexOf ( "webtv" ) != - 1 ) flashVer = 2 ; else if (userAgent navegador .. toLowerCase () indexOf ("tv") = - 1.!) flashVer = 2; 1 ; otra flashVer = - 1; / / flashVer regresar; },
( reqMajorVer , reqMinorVer , reqRevision ) { detectFlashVer: function (reqMajorVer, reqMinorVer, reqRevision) { parseFloat ( reqMajorVer + "." + reqRevision ) ; reqVer var = parseFloat (reqMajorVer reqRevision + + "."); var i = 25 ; i > 0 ; i -- ) { for (var i = 25; i> 0, i -) { this ._isIE && this ._isWin && ! this ._isOpera ) var versionStr = VBgetSwfVer ( i ) ; if (this. && _isIE esta && _isWin este _isOpera.!.) = var versionStr VBgetSwfVer (s); versionStr = this . getSwfVer ( i ) ; otra var = esta versionStr getSwfVer (i).; versionStr == - 1 ) return false ; if (versionStr == - 1) return false; versionStr != 0 ) { else if (versionStr! = 0) { this ._isIE && this ._isWin && ! this ._isOpera ) { if (this. &&. && _isIE este _isWin! este _isOpera.) { versionStr. split ( " " ) ; . var = tempArray versionStr split (""); tempArray [ 1 ] ; tempString tempArray var = [1]; tempString . split ( "," ) ; . var = versionArray tempString split (""); var versionArray = versionStr. split ( "." ) ; . Var =} else versionArray versionStr Split ("."); / / versionArray [ 0 ] ; var VersionMajor versionArray = [0]; versionArray [ 1 ] ; VersionMinor versionArray var = [1]; versionArray [ 2 ] ; var = versionRevision versionArray [2];
versionMajor + "." + versionRevision ; // 7.0r24 == 7.24 var = versionString VersionMajor + "." versionRevision + / / == 7,24 7.0r24 parseFloat ( versionString ) ; var versionNum = parseFloat (versionString); / / Es la versión principal> = versión principal se pidió la versión menor> = solicitado versión menor versionMajor > reqMajorVer ) && ( versionNum >= reqVer ) ) return true ; if ((VersionMajor> reqMajorVer) && (versionNum> = reqVer)) return true; versionNum >= reqVer && versionMinor >= reqMinorVer ) ? true : false ) ; else return:; (versionNum (> = reqVer VersionMinor &&> = reqMinorVer) verdadero falso?) } } reqVer ? false : 0.0 ) ; retorno (reqVer falsa: 0,0); },
/ / HACER ( n , w , h ) { insertFlash: function (n, w, h) { this . detectFlashVer ( 8 , 0 , 0 ) ) { si (this. detectFlashVer (8, 0, 0)) { ; n + = "swf."; '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,29,0" width="' + w + '" height="' + h + '"> \n ' ) ; documento de write ('<objeto classid = "clsid: D27CDB6E-AE6D-11cf-96B8-444553540000". codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab # version = 7 , 0,29,0 "width =" '+ w +' "height =" '+ h +' "> \ n '); '<param name="movie" value="' + n + '" /> \n ' ) ; . documento de write ('+ n + <param name="movie" value="''" /> \ n'); '<param name="quality" value="auto" /> \n ' ) ; documento de write ('<param name="quality" value="auto" /> \ n').; '<embed src="' + n + '" width="' + w + '" height="' + h + '" quality="auto" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed> \n ' ) ; documento. write ('<embed src = "' + n +" "width =" '+ w +' "height =" '+ h +' "quality =" auto "pluginspage =" http://www.macromedia. com / go / getflashplayer "type =" application / x-shockwave-flash "> </ embed> \ n '); '</object> \n ' ) ; . documento de write ('</ object> \ n'); document. write ( '<a id="flash_alternate" target="_blank" href="http://www.adobe.com/go/getflashplayer"></a>' ) ; Else} documento de Write ('<a target="_blank" id="flash_alternate" href="http://www.adobe.com/go/getflashplayer"> </ a>.'); } };
/ / -> |
Como de costumbre, Internet Explorer (7) es diferente y tiene un código especialmente estructurado en VBScript:
[Visual Basic]
[/ Vb]
Guarde estos dos archivos (y df.js df.vbs carpeta js) y includiamoli en nuestra página (index.html, index.php o default.html, etc ...) dentro de la etiqueta HEAD.
1 2
| "javascript1.2" type = "text/javascript" src = "js/df.js" >< / script > < script de language = "JavaScript1.2" type = "text / javascript" src = "js / df.js"> </ script de > "VBScript" type = "text/vbscript" src = "js/df.vbs" >< / script > < script de language = "VBScript" type = "text / vbscript" src = "js / df.vbs"> </ script de > |
Ahora tenemos todo lo necesario y podemos pasar a la página que contiene el objeto de Flash Player. Encontrar el punto de que el flash en la pantalla y escriba el siguiente código:
Aquí hemos supuesto que hay un archivo de carpetas splash.swf flash! Tenga en cuenta que es necesario insertar el archivo SWF. Los dos números 900 y 122 son las dimensiones.
Aún mejor sería apoyar el caso - a distancia - que JavaScript no está habilitado. En este caso puede optar por proceder de dos maneras:
1. Inseire código directamente en el objeto / embed
2. Notificar que JavaScript no está habilitado
En el primer caso, perdemos el control sobre la presencia de Flash y Explorer le preguntará si desea activar el control ActiveX. Sin embargo, la película será visible si Flash está instalado.
En el segundo caso podemos mostrar una imagen y / o con JavaScript desactivado notoficare que no es posible verificar la presencia de Adobe Flash plug-in. Por ejemplo, la elección del número 1 solución:
1 2 3 4 5 6 7 8 9 10
| "claim" > < div id = "alegación"> < noscript > "movie" value = "flash/splash.swf" / > < param name = "movie" value = "flash / splash.swf" /> "quality" value = "high" / > < param name = "calidad" value = "high" /> </ objetos > </ noscript > </ div > |
La detección de Flash y administrar varias alternativas, como se explica en la detección del flash: cómo detectar flash , no es muy cómodo, por lo menos esperamos que no se deteriora con el tiempo.
Más información ...
La escritura de código dentro de una página HTML de forma dinámica es posible y útil. predisposto ad accettare codice inserito tramite innerHTML . La forma más directa es utilizar y conocido documenti.write() o un contenedor DIV preparado para aceptar el código insertado a través de innerHTML . Alternativamente, usted puede conectar a una etiqueta existente y utilizar el DOM para añadir o eliminar elementos en la página. Por ejemplo immmaginiamo desea cargar un archivo nuevo sin necesidad de utilizar secuencias de comandos del lado del servidor Javascript y vuelva a cargar la página. Las siguientes funciones, por ejemplo, añade un archivo JavaScript en su página como un parámetro (incluyendo la ruta).
1 2 3 4 5 6
| s ) { función de addScripting (s) { document. createElement ( 'script' ) ; scriptNode var = documento createElement ('script').; "head" ) [ 0 ] . appendChild ( scriptNode ) ; documento de getElementsByTagName ("cabeza") [0] appendChild (scriptNode)..; 'javascript' ; . scriptNode language = "javascript"; s ; scriptNode src = s.; } |
Del mismo modo se puede añadir una hoja de estilo a nuestra página, indicado por la variable cssfile :
1 2 3 4 5
| document. createElement ( 'link' ) ; cssNode var = documento createElement ('link').; 'rel' , 'stylesheet' ) ; . cssNode setAttribute ('rel', 'estilo'); 'type' , 'text/css' ) ; . cssNode setAttribute ('tipo', 'text / css "); 'href' , cssfile ) ; . cssNode setAttribute ('href', cssFile); 'head' ) [ 0 ] . appendChild ( cssNode ) ; documento de getElementsByTagName ('cabeza') [0] appendChild (cssNode)..; |
Más información ...
¿Cómo se puede determinar si un navegador tiene la versión correcta del plugin de Flash? Para ello existe - notablemente - 5 técnicas:
- Confiar en uno mismo-funcionamiento de la función de la etiqueta object y embed
- El uso de un script (JavaScript y / o VBScript) específicamente previstos por Adobe
- Use un artilugio con una sola película de Flash
- No hacer nada

- Permitir al usuario elegir
Más información ...
¿Cuántos desarrolladores web saben, antes de la llegada del objeto XMLHttpRequest, el problema de la recarga de una página Web se resolvió con la técnica del marco oculto o IFRAME. Este truco sencillo para muchos años se les permite resolver algunos problemas de otro modo insolubles de la interfaz. Una de las ventajas en el uso de frame oculto, entre otras cosas, fue la posibilidad de mantener el historial del navegador! Lo que no permite que el objeto XMLHttpRequest.
Además de las técnicas que utilizan HTML FRAME o IFRAME oculto, es posible el uso de Flash como un sub-canal de comunicación entre la página y el servidor. Se valorará la experiencia en esta dirección se encuentran actualmente en fase de desarrollo (véase, por ejemplo Fjax ). La idea es "ocultar" una película Flash en la página HTML (como sucedió con el marco) y comunicarse con él a través de JavaScript (o VBScript de Microsoft sólo medio ambiente).
Sin embargo, esta técnica una serie de trampas ocultas. En primer lugar de todas las fuerzas que el usuario final para instalar el plugin de flash, y por lo tanto no representa una solución HTML (puro) limpio. También se requiere, sin embargo, se le solicite el uso de Javascript y Flash como interfaz entre la página, por lo tanto vale la pena utilizar el objeto XMLHttpRequest. Entonces, cuando usted comienza a escribir un marco en ActionScript quieren hacer todo en Flash. Esta es la variante que el objeto XMLHttpRequest empieza a hacer sentido.
En última instancia, si no desea utilizar el objeto XMLHttpRequest, debemos confiar en la técnica ya establecida de frame oculto. Hay incluso los que utilizan sólo una técnica mixta: XMLHttpRequest + IFRAME!
Sin embargo, ahora, el Ajax (en forma de objeto XMLHttpRequest) ha tenido tanto éxito que en el futuro el objeto XMLHttpRequest que será apoyado por la mejora de los proveedores de navegadores (Microsoft, Mozilla, Opera, etc ...). En la práctica, XMLHttpRequest será un componente por defecto (como ya sucede en Firefox) dentro de su navegador, accesible a través de Javascript! ¿Por qué no usarlo?
Más información ...
Ajax, para algunos, fue una revolución. stessi nascosti). Para algunos programadores "navegado" era sólo una forma diferente de hacer lo que se logró por primera vez mediante el uso de la etiqueta HTML IFRAME (o FRAME misma oculto). Es evidente que son todos los derechos. Ajax fue una revolución porque sucedió en un momento determinado, donde la propagación de la gran banda y la madurez de la Web (Web 2.0?) Han permitido un enfoque completamente diferente que en el pasado.
La proliferación de aplicaciones Web por parte de grupos grandes como Microsoft, Yahoo, Google y los demás, muestra cuánto se está invirtiendo en este nuevo enfoque. El futuro - un futuro próximo - Ajax es tan brillante y llena de giros nuevos.
El navegador y las secuencias de comandos del servidor (como PHP) pueden dar la ayuda a esta nueva forma de ver la Web y sus recursos! Applick.com hay una clara demostración!
Más información ...
En Redmond deben tener algún problema grande en la captación! Es maravillosamente absurdo que a finales de 2006, siguen siendo la base de una - y - la compatibilidad aproximada entre IE7 y Firefox! A pesar de la versión oficial - aunque con un número limitado de lugares - 7 de Internet Explorer, el motor de renderizado de la página aún adolece de defectos de programación obvio! Sin entrar en muchos detalles evitado lista de sólo dos errores de alto perfil siguen presentes en el lanzamiento oficial!
En primer lugar todos los NPCs se hacen de manera diferente de GIF ... y, peor aún, en la posición absoluta de someterse a extraños contornos, dependiendo de la forma en que se ejecuta en IE! Error obvio? O la locura de algún programador junior?
En la clase CSS seudo: hover todavía no está soportado en todos los TAG, aunque muchos dan por el funcionamiento blog! Pero, ¿qué sistema? Ver W3C ...
Una página muy simple: el último niño es prácticamente ignorado! Microsoft ha apoyado con razón p: first-child. Ahora bien, si se implementa la primera cosa que le cuesta poner en práctica, incluso pasado? Misterio ...
El ápice de lo absurdo, a continuación, se obtiene con listas con viñetas! Oye oye! Internet Explorer 7 se comporta exactamente como IE6! De la serie: que ha traído consigo el código defectuoso? Demasiado muchas copias y pegar, por supuesto! Si Definitie una lista con los cánones y una imagen personalizada como UL LI lista de puntos, no trate de utilizar un elemento de flotación LI, la imagen desaparece misteriosamente, tal como lo hicieron en IE6! El uno, ni que decir, hacer las cosas bien es la costumbre - edad - FireFox!
Blog de IE7 se suman numerosas denuncias. A pesar de que apreciaba los esfuerzos del gigante Microsoft para empezar un blog durante el desarrollo de un software como Internet Explorer 7, sin embargo, permanece la cuestión de la eficacia de esta medida. Realmente escuchó las peticiones de los usuarios de los desarrolladores? El blog se ha abierto con IE7 demasiado tarde?
Una vez más tenemos que esperar para una aventura de Service Pack que viene ...
Más información ...
Después de la adquisición de Macromedia, Adobe crea sus laboratorios , laboratorios de desarrollo! Basándose en el éxito de Microsoft con su Internet Explorer 7 Blog - que se ha (y tiene) que se ahorra una gran cantidad de servicios de paquete - Adobe también adoptó la técnica de la versión beta. De hecho, él era ahora, en lugar de esperar a que el tiempo ahora mucho tiempo para desarrollar un software (ya sea la tradición, es una aplicación Web) ¿Por qué no proponemos que la versión todavía en desarrollo? De esta manera existe una retroalimentación en tiempo real sobre la calidad real del software que están desarrollando.
Sin embargo, con toda honestidad, el software debe haouse abajo un poco de "precios de su software, ya que la beta - usted paga o se pagan - lo que hacemos los usuarios!
Con Adobe Soundbooth beta sobrescribe el conocido SoundEdit. Adobe Photoshop Lightroom es un nuevo producto dirigido a fotógrafos profesionales, con una gran cantidad de demostraciones de vídeo en línea. Flash 9 con ActioneScript 3 aparece también en la versión alfa para descargar! Aunque se indica vista previa! Para encontrar el móvil de Flash Lite 2.1 Update autoría , pero parece que una versión final en vez de anticipación. Aparte de esta miscelánea pequeña de la beta, alfa y de actualización creen que la iniciativa es buena, si no excelente.
Así que para los curiosos que quieren por delante y no esperar a probar una nueva versión del software, Adobe Labs es un lugar de diversión segura! Insisto una vez más la tendencia de involucrar a los usuarios finales de las etapas de desarrollo, una tendencia que debe su propagación a la generación Web 2.0. Lo más probable es que será un modo en el futuro cercano se extenderá como la pólvora siempre que sea posible. Usted podría intentar un'appartamente un'autombile o antes de que se libera, por ejemplo ...
Más información ...
Hay una razón muy importante para preferir la inclusión de contenidos a través de PHP - del lado del servidor - en una página Web con respecto a el uso de JavaScript - lado del cliente. En el desarrollo de los servicios de excursión herramientas utilizadas en el CMS getmePage applick.com era posible utilizar el motor de Ajax como servidor HTTP de recuperación de datos. El problema, en este caso, era que tenía que ver con el contenido de un sitio, el contenido de la indexación por los rastreadores de búsqueda como Googlebot! Los rastreadores no ejecuta JavaScript, por lo que es una página en blanco en los ojos de Googlebot. Hoy me contento con hacer una diferencia en la indexación en motores de búsqueda, así que tienes que tener cuidado de cómo se generan contenido en una página. El que ve el "usuario final no es el punto de vista de una herramienta como el robot de Google. Esta es una de las razones que determinaron la elección de PHP nell'engine de recuperación de datos dell'applick getmePage. PHP, de hecho, es ejecutado por el servidor Web antes de enviar la página al cliente. De ello se desprende, por tanto, que lo que ve es lo que un rastreador ve el usuario final.
Más información ...
Como ya se ha tocado en " activar vs PHP "(o ASP, CFM, ...), la cuestión de si o no para entrar en un núcleo de Web 2.0 JavaScript en las secuencias de comandos, en lugar de dejarlo - en la mayoría de los miembros - del lado del servidor, puede causar confusión si no se desconcierto. Sin embargo, hay buenas razones para favorecer el servidor que el cliente, razones que no tienen nada que ver con la Web 2.0 que, en cambio, centra su atención en sus scripts de JavaScript.
Más información ...
Últimos Comentarios
Mateo : Hola a todos, por desgracia, Google no permite el uso de la API de Flash, pero lo hará ...
Giovambattista Fazioli : @ MM: Si usted subir imágenes a un servidor diferente (que WordPress no puedo ...
GM : Hola, lo siento para resucitar un viejo post, pero espero que usted me puede dar una mano. ¿Cómo lo hago, con este método, ...
Giovambattista Fazioli : @ Fabio: un mensaje del pasado! Yo recomiendo usar las funciones más prácticas de las pestañas, ahora ...
Fabio : Hola, buscando en la web me encontré con este artículo para crear la barra de pestañas javascript con PHP y CSS, pero ...