Está en la página 1de 21

S.E.P. D.G.I.T.

S.E.I.T.

INSTITUTO TECNOLGICO
Del Istmo.

MATERIA: PROGRAMACION WEB TEMA: Browser Object Model (BOM) TITULAR: Ing. Jos Anton o !"#e$ Pos%d% PRESENTA:
C%st llejos G%llegos Gr seld% M%rt&ne$ Endol%' (%r n% )%ntos C*e+%s ! $bet, Melnde$ -er.n Otn el

ESPECIALIDAD:

! c. In/or0.t c%
Heroica ciudad de Juchitn de Zaragoza, Oaxaca, Abril 2010.

INDICE PAG. 5.1 INTRODUCCION A BOM 3

DESARROLLO DEL TRABAJO 5.2. El objeto wi !ow 5.3 El objeto Do#$%e t 5." El Objeto Lo#'tio 5.5 El objeto '(i)'to* 5.+ El Objeto S#*ee " & 12 1+ 1&

CONCLUSION BIBLIOGRA-IA

2, 21

5.1. I t*o!$##i. ' BOM Las versiones 3.0 de los navegadores Internet Explorer y Nets ape Navigator introd!"eron el on epto de Browser Object Model o BO#$ %!e per&ite a y &odi'i ar las propiedades de las ventanas del propio navegador. #ediante BO#$ es posi(le redi&ensionar y &over la ventana del navegador$ &odi'i ar el texto %!e se &!estra en la (arra de estado y reali)ar &! *as otras &anip!la iones no rela ionadas on el ontenido de la p+gina ,T#L. El &ayor in onveniente de BO# es %!e$ al ontrario de lo %!e s! ede on DO#$ ning!na entidad se en arga de estandari)arlo o de'inir !nos &-ni&os de interopera(ilidad entre navegadores. Alg!nos de los ele&entos %!e 'or&an el BO# son los sig!ientes. / 0rear$ &over$ redi&ensionar y errar ventanas de navegador. / O(tener in'or&a i1n so(re el propio navegador. / 2ropiedades de la p+gina a t!al y de la pantalla del !s!ario. / 3esti1n de oo4ies. / O("etos A tive5 en Internet Explorer. El BO# est+ o&p!esto por varios o("etos rela ionados entre s-. El sig!iente es%!e&a &!estra los o("etos de BO# y s! rela i1n. 6ig!ra 7.8. Jerar%!-a de o("etos %!e 'or&an el BO# En el es%!e&a anterior$ los o("etos &ostrados on varios re !adros s!perp!estos son arrays. El resto de o("etos$ representados por !n re t+ng!lo individ!al$ son o("etos si&ples. En !al%!ier aso$ todos los o("etos derivan del o("eto 9indo9. eder

5.2. El objeto wi !ow El o("eto 9indo9 representa la ventana o&pleta del navegador. #ediante este o("eto$ es posi(le &over$ redi&ensionar y &anip!lar la ventana a t!al del navegador. In l!so es posi(le a(rir y errar n!evas ventanas de navegador. Si !na p+gina e&plea 'ra&es$ ada !no de ellos se al&a ena en el array 'ra&es$ %!e p!ede ser a 'ra&e?=>. 0o&o todos los de&+s o("etos *eredan dire ta o indire ta&ente del o("eto 9indo9$ no es ne esario indi arlo de 'or&a expl- ita en el 1digo JavaS ript. En otras pala(ras. 9indo9.'ra&es<0= @@ 'ra&es<0= 9indo9.do !&ent @@ do !&ent BO# de'ine !atro &:todos para &anip!lar el ta&aAo y la posi i1n de la ventana. / &oveBy;x$ y> despla)a la posi i1n de la ventana x p-xel *a ia la dere *a y y p-xel *a ia a(a"o. Se per&iten despla)a&ientos negativos para &over la ventana *a ia la i)%!ierda o *a ia arri(a. / &oveTo;x$ y> despla)a la ventana del navegador *asta %!e la es%!ina s!perior i)%!ierda se en !entre en la posi i1n ;x$ y> de la pantalla del !s!ario. Se per&iten despla)a&ientos negativos$ a!n%!e ello s!ponga %!e parte de la ventana no se vis!ali)a en la pantalla. / resi)eBy;x$ y> redi&ensiona la ventana del navegador de 'or&a %!e s! n!eva an *!ra sea ig!al a ;an *!raBanterior C x> y s! n!eva alt!ra sea ig!al a ;alt!raBanterior C y>. Se p!eden e&plear valores negativos para red! ir la an *!ra yDo alt!ra de la ventana. / resi)eTo;x$ y> redi&ensiona la ventana del navegador *asta %!e s! an *!ra sea ig!al a x y s! alt!ra sea ig!al a y. No se per&iten valores negativos. Los navegadores son ada ve) &enos per&isivos on la &odi'i a i1n &ediante JavaS ript de las propiedades de s!s ventanas. De *e *o$ la &ayor-a de navegadores per&ite a los !s!arios (lo%!ear el !so de JavaS ript para reali)ar edido n!&:ri a&ente ;9indo9.'ra&es<0=> o$ si se *a indi ado !n no&(re al 'ra&e$ &ediante s! no&(re ;9indo9.'ra&es<?no&(re del

a&(ios de este tipo. De esta 'or&a$ !na apli a i1n n!n a de(e s!poner %!e este tipo de '!n iones est+n disponi(les y '!n ionan de 'or&a orreta. A ontin!a i1n se &!estran alg!nos e"e&plos de !so de estas '!n iones.
E"e&plo 8. 9indo9.&oveBy

Mover la ventana 20 pxel hacia la derecha y 30 pxel hacia abajo, window.moveBy(20, 30);
E*t&lF Es ript lang!age@?JavaS ript8.G?F EHII '!n tion &oveJin;dir$ dist>K var &yLertM var &y,or)M i';dir @@ ?vert?>K &y,or) @ 0M &yLert @ distM NelseK &y,or) @ distM &yLert @ 0M N 9indo9.&oveBy;&y,or)$ &yLert>M N IIF EDs riptF E(odyF E'or&F Eta(le (order@0F EtrF EtdFEinp!t type@BOTTON val!e@? Arri(a ? on0li 4@?&oveJin;PvertP$I8>?FEDtdF EDtrF EtrF EtdFEinp!t type@BOTTON val!e@? I)%!ierdo ? on0li 4@?&oveJin;P*or)P$I8>?FEDtdF EtdFEinp!t type@BOTTON val!e@?Dere *o? on0li 4@?&oveJin;P*or)P$8>?FEDtdF EDtrF EtrF EtdFEinp!t type@BOTTON val!e@?A(a"o? on0li 4@?&oveJin;PvertP$8>?FEDtdF EDtrF EDta(leF ED'or&F ED(odyF </html>

Ejemplo 2: window.resizeTo

Redimensionar la ventana hasta un tamao de 250 x 250 window.resizeTo(250, 250);


E*t&lF E*eadF Es ript lang!age@?JavaS ript8.G?F EHII '!n tion resi)eJin;'or&>K var &yJidt* @ 'or&.9idt*.val!eM var &y,eig*t @ 'or&.*eig*t.val!eM 9indo9.resi)eTo;&yJidt*$ &y,eig*t>M N IIF EDs riptF ED*eadF E(odyF E'or&F E(FN!eva An *!ra.ED(F Einp!t type@TE5T na&e@?9idt*?FE(rF E(FN!eva Alt!ra.ED(F Einp!t type@TE5T na&e@?*eig*t?FE(rF Einp!t type@BOTTON val!e@?Redi&ensione Lentana? on0li 4@?resi)eJin;t*is.'or&>?FEDtdF ED'or&F ED(odyF </html> E"e&plo 3. 9indo9.resi)eBy

Agrandar la altura de la ventana en 50 !xel window.resize"#(0, 50);


E*t&lF E*eadF Es ript lang!age@?JavaS ript8.G?F EHII '!n tion resi)eJin;dir$ dist>K var &yLertM var &y,or)M i';dir @@ ?vert?>K &y,or) @ 0M &yLert @ distM NelseK &y,or) @ distM &yLert @ 0M N 9indo9.resi)eBy;&y,or)$ &yLert>M N IIF EDs riptF ED*eadF E(odyF E'or&F

Eta(le (order@0F EtrF EtdFEinp!t type@BOTTON val!e@?Expandir A(a"o? on0li 4@?resi)eJin;PvertP$80>?FEDtdF EDtrF <tr> EtdFEinp!t type@BOTTON val!e@?Retraer Dere *o? on0li 4@?resi)eJin;P*or)P$I 80>?FEDtdF EtdFEinp!t type@BOTTON val!e@?Expandir Dere *o? on0li 4@?resi)eJin;P*or)P$80>?FEDtdF EDtrF EtrF EtdFEinp!t type@BOTTON val!e@?Retraer A(a"o? on0li 4@?resi)eJin;PvertP$I 80>?FEDtdF EDtrF EDta(leF ED'or&F ED(odyF </html> E"e&plo Q. 9indo9.&oveTo

$olo%ar la ventana en la es&uina iz&uierda su erior de la ventana, window.moveTo(0, 0);


E*t&lF E*eadF ED*eadF Es ript lang!age@?JavaS ript8.G?F EHII '!n tion &oveJin;'or&>K var &y5 @ 'or&.5.val!eM var &yR @ 'or&.R.val!eM 9indo9.&oveTo;&y5$ &yR>M N IIF EDs riptF <body> E'or&F E(F5I0oordinate.ED(F Einp!t type@TE5T na&e@?5?FE(rF E(FRI0oordinate.ED(F Einp!t type@TE5T na&e@?R?FE(rF Einp!t type@BOTTON val!e@?#over Lentana? on0li 4@?&oveJin;t*is.'or&>?FEDtdF ED'or&F ED(odyF </html>

5.3 El objeto Do#$%e t E o("eto do !&ent es el !ni o %!e pertene e tanto al DO# o&o al DO#. Desde el p!nto de vista de BO#$ el o("eto do !&ent propor iona in'or&a i1n so(re la propia pagina ,T#L. Alg!nas de las propiedades &+s i&portantes de'inidas por el o("eto do !&ent son.

P*o/ie!'! last#odi'ied Re'errer

De0#*i/#i. La 'e *a de la Slti&a &odi'i a i1n de la p+gina La ORL desde la %!e se a el array edi1 a la

p+gina ;es de ir$ la p+gina anterior en *istory> El texto de la eti%!eta EtitleF La ORL de la p+gina a t!al del navegador

Title ORL

Las propiedades title y ORL son de le t!ra y es rit!ra$ por lo %!e ade&+s de o(tener s! valor$ se p!ede esta(le er de 'or&a dire ta. // modificar el ttulo de la pgina do !&ent.title @ ?N!evo tit!lo?M // llevar al usuario a otra pgina diferente do !&ent.ORL @ ?*ttp.DDn!evaBpagina?M

Ade&+s de propiedades$ el o("eto do !&ent in'or&a i1n so(re

ontiene varios arrays

on

alg!nos ele&entos de la p+gina. A**'1 An *ors De0#*i/#i. 0ontiene todas las ?an las? de la p+gina ;los Applets E&(eds enla es de tipo Ea na&e@?no&(reBan la?FEDaF> 0ontiene todos los applets de la p+gina 0ontiene todos los o("etos e&(e(idos en la p+gina &ediante la eti%!eta Ee&(edF 6or&s I&ages Lin4s 0ontiene todos los 'or&!larios de la p+gina 0ontiene todas las i&+genes de la p+gina 0ontiene todos los enla es de la p+gina ;los ele&entos de tipo Ea *re' @?enla e.*t&l?FEDaF>

Los ele&entos de ada array del o("eto do !&ent se p!eden a se onsidera por e"e&plo la sig!iente p+gina ,T#L. P*i%e*o TITLE E*t&lF E*eadF EtitleFE"e&plo de TITLEEDtitleF Es ript type@?textD"avas ript?F do !&ent.title @ ? on el do !&ent. title....?M

eder &ediante

s! -ndi e n!&:ri o o &ediante el no&(re del ele&ento en la p+gina ,T#L. Si

EDs riptF ED*eadF E(odyF ED(odyF ED*t&lF Se)$ !o URL E*t&lF E*eadF EtitleFE"e&plo de !rlEDtitleF Es ript type@?textD"avas ript?F do !&ent.ORL @ ?*ttp.DD999.google. o&?M

EDs riptF ED*eadF E(odyF ED(odyF ED*t&lF

2ara a eder a los ele&entos de la p+gina se p!eden e&plear las '!n iones DO# o los o("etos de BO#. / 2+rra'o. do !&ent.getEle&entsByTagNa&e;?p?> / Enla e. do !&ent.lin4s<0=

/ I&agen. do !&ent.i&ages<0= o do !&ent.i&ages<?logotipo?= / 6or&!lario. do !&ent.'or&s<0= o do !&ent.'or&s<? ons!ltas?=

Ona ve) o(tenida la re'eren ia al ele&ento$ se p!ede a eder al valor de s!s atri(!tos ,T#L !tili)ando las propiedades de DO#. De esta 'or&a$ el &:todo del 'or&!lario se o(tiene &ediante do !&ent.'or&s<? ons!ltas?=.&et*od y la r!ta de la i&agen es do !&ent.i&ages<0=.sr .

5." El Objeto Lo#'tio El o("eto lo ation es !no de los o("etos &+s Stiles del BO#. De(ido a la 'alta de estandari)a i1n$ lo ation es !na propiedad tanto del o("eto 9indo9 o&o del o("eto do !&ent. El o("eto lo ation representa la ORL de la p+gina ,T#L %!e se &!estra en la ventana del navegador y propor iona varias propiedades Stiles para el &ane"o de la ORL.

P*o/ie!'! ,as*

De0#*i/#i. El ontenido de la ORL %!e se en !entra desp!:s del signo T ;para los enla es de las an las> *ttp.DD999.e"e&plo. o&Dr!ta8Dr!taGDpagina.*t&lTse ion *as* @ Tse ion El no&(re del servidor *ttp.DD999.e"e&plo. o&Dr!ta8Dr!taGDpagina.*t&lTse ion *ost @ 999.e"e&plo. o& La &ayor-a de las ve es

,ost

*ostna&e

oin ide

on *ost$ a!n%!e en ion

o asiones$ se eli&inan las 999 del prin ipio *ttp.DD999.e"e&plo. o&Dr!ta8Dr!taGDpagina.*t&lTse ,re' *ostna&e @ 999.e"e&plo. o& La ORL o&pleta de la p+gina a t!al *ttp.DD999.e"e&plo. o&Dr!ta8Dr!taGDpagina.*t&lTse pat*na&e ion ORL@*ttp.DD999.e"e&plo. o&Dr!ta8Dr!taGDpagina.*t&lTse ion Todo el ontenido %!e se en !entra desp!:s del *ost *ttp.DD999.e"e&plo. o&Dr!ta8Dr!taGDpagina.*t&lTse port pat*na&e @ Dr!ta8Dr!taGDpagina.*t&l Si se espe i'i a en la ORL$ el p!erto a port @ U0U0 La &ayor-a de ORL no propor ionan !n p!erto$ por lo %!e s! ontenido es va -o *ttp.DD999.e"e&plo. o&Dr!ta8Dr!taGDpagina.*t&lTse port @ ;va -o> ion edido ion

*ttp.DD999.e"e&plo. o&.U0U0Dr!ta8Dr!taGDpagina.*t&lTse ion

proto ol

El proto olo e&pleado por la ORL$ es de ir$ todo lo %!e se en !entra antes de las dos (arras in linadas DD *ttp.DD999.e"e&plo. o&Dr!ta8Dr!taGDpagina.*t&lTse ion proto ol @ *ttp. Todo el ontenido %!e se en !entra tras el s-&(olo V$ es de ir$ la ons!lta o "query string" *ttp.DD999.e"e&plo. o&Dpagina.p*pV varia(le8@valor8Wvaria(leG@valorG sear * @ Vvaria(le8@valor8Wvaria(leG@valorG

Sear *

De todas las propiedades$ la &+s !tili)ada es lo ation.*re'$ %!e per&ite o(tener o esta(le er la dire navegador. Ade&+s de las propiedades de la ta(la anterior$ el o("eto lo ation ontiene n!&erosos &:todos y '!n iones. Alg!nos de los &:todos &+s Stiles son los sig!ientes. // Mtodo assign ! lo ation.assign;?*ttp.DD999.e"e&plo. o&?>M // "quivalente a location#$ref % $ttp&//www#ejemplo#com // Mtodo replace ! lo ation.repla e;?*ttp.DD999.e"e&plo. o&?>M // 'imilar a assign !( salvo que se borra la pgina actual del array $istory del navegador // Mtodo reload ! lo ation.reload;tr!e>M /) *ecarga la pgina# 'i el argumento es true( se carga la pgina desde el servidor# 'i es false( se carga desde la cac$e del navegador )/ i1n de la p+gina %!e se &!estra en la ventana del

P*i%e*o '00i) E*t&lF E*eadF EtitleFE"e&plo de Operadores logiosEDtitleF Es ript type@?textD"avas ript?F lo ation.assign;?*ttp.DD999.google. o&?>M

EDs riptF ED*eadF E(odyF ED(odyF ED*t&lF Se)$ !o *e/l'#e E*t&lF E*eadF EtitleFE"e&plo repla eEDtitleF Es ript type@?textD"avas ript?F lo ation.repla e;?*ttp.DD999.*ot&ail. o&?>M

EDs riptF ED*eadF E(odyF

ED(odyF ED*t&lF

Te*#e*o *elo'! E*t&lF E*eadF EtitleFE"e&plo de reloadEDtitleF Es ript type@?textD"avas ript?F

lo ation.reload;'alse>M

EDs riptF ED*eadF E(odyF ED(odyF ED*t&lF

5.5 El objeto '(i)'to* Este o("eto per&ite o(tener datos del navegador %!e est+ vis!ali)ando !n do !&ento. #ediante s!s propiedades pode&os sa(er el tipo de navegador$ s! versi1n$ (a"o %!: siste&a operativo tra(a"a. Lea&os a ontin!a i1n s!s propiedades. app0odeNa&e Dev!elve el no&(re odi'i ado dado al navegador. ap:ne&e No&(re del navegador. appLersion 6a ilita la versi1n del navegador. Bro9serLang!ag el idio&a del navegador. 0oo4ieEna(led In'or&a si el navegador tiene a tivadas las oo4ies 0p!0lass 6a ilita el tipo de 02O del siste&a Lang!age idio&a del &is&o. 2lat'or& 2lata'or&a donde est+ e"e !t+ndose. SysternLang!age Dev!elve el idio&a del siste&a. OserAgent En a(e)ado enviado o&o parte del proto olo ,TT2. OserLang!age Dev!elve el idio&a a t!al.
2l!gins. son pe%!eAos 'rag&entos de so't9are %!e intera tSan on el

navegador para propor ionar alg!nas '!n iones %!e en la &ayor-a de los asos son &!y espe i'i as. E"e&plos t-pi os de pl!gins son los !sados para &ostrar los distintos 'or&atos gr+'i os$ o para reprod! ir 'i *eros &!lti&edia.

Las propiedades del o("eto navigator son de le t!ra$ es de ir$ no podr+n &odi'i ar o asignar valor a ning!na de ellas.

Este o("eto dispone ade&+s de dos &:todos. taintEna(led ;> Dev!elve 'alse y se in l!ye en Internet Explorer por o&pati(ilidad on Nets ape. "avaEna(led ;> Dev!elve tr!e si el int:rprete de lava est+ a tivado.

E"e&plo. E*t&lF E(odyF Es ript type@?textD"avas ript?F EHII var prop@ne9 Array ;?app0odeNa&e?$ ?appNa&e?$ ?app#inorLersion?$ ?appNa&e?$ ?appLersion?$ ?(ro9serLang!age?$ ? p!0lass?$ ? oo4ieEna(led?$ ?onLine?$ ?plat'or&?$ ?pl!gins?$ ?syste&Lang!age?$ ?!serAgent?$ ?!serLang!age?>M do do do do do !&ent.9riteln;?Eta(le (order@X?8X?F?>M !&ent.9riteln;?EtrF?>M !&ent.9riteln;?Et*F2ropiedadEDt*F?>M !&ent.9riteln;?Et*FLalorEDt*F?>M !&ent.9riteln;?EDtrF?>M

'or ;var i@0M iEprop.lengt*M iCC> K do !&ent.9riteln;?EtrF?>M do !&ent.9riteln;?EtdF?>M do !&ent.9riteln;?E(F? C prop<i= C ?ED(F?>M do !&ent.9riteln;?EDtdF?>M do !&ent.9riteln;?EtdF?>M do !&ent.9riteln;eval;?navigator.? C prop<i=>>M do !&ent.9riteln;?EDtdF?>M do !&ent.9riteln;?EDtrF?>M N do !&ent.9riteln;?EDta(leF?>M DDIIF EDs riptF

ED(odyF ED*t&lF

5.+ El Objeto S#*ee El o("eto s reen se !tili)a para o(tener in'or&a i1n so(re la pantalla del !s!ario. Ono de los datos &+s i&portantes %!e propor iona el o("eto s reen es la resol! i1n del &onitor en el %!e se est+n vis!ali)ando las p+ginas.

El o("eto s reen s!ele ontar on las sig!ientes propiedades

'('il2ei)3t4 Espe -'i a la alt!ra de la pantalla ;en p-xeles> %!e p!eden !tili)ar las ventanas '('il5i!t34 La an *!ra de la pantalla ;en p-xeles> disponi(les para !tili)ar on las ventanas. #olo*De/t34 El nS&ero de (it !tili)ado para representar pantalla. 3ei)3t4 La alt!ra de la pantalla de p-xeles. wi!t34 La an *!ra de la pantalla en p-xeles. olores por

Las propiedades del o("eto s reen se !tili)an por e"e&plo para deter&inar 1&o y !anto se p!ede redi&ensionar !na ventana y para olo ar !na ventana entrada en la pantalla del !s!ario.

El sig!iente e"e&plo redi&ensiona !na n!eva ventana al ta&aAo &+xi&o posi(le segSn la pantalla del !s!ario. E*t&lF E*eadF EtitleFA(riendo y errando ventanas on Javas riptEDtitleF Es riptF EHII var n!evaLentanaM '!n tion do(le; x > K ret!rn GYxM N '!n tion n!eva;> K n!evaLentana@n!evaLentana@9indo9.open;??$ ?seg!nda2ag?$ ?tool(ar@yes$lo ation@no$&en!(ar@yes$resi)a(le@yes$?C ?9idt*@30$*eig*t@30? >M DYeste es el odigo %!e *a e %!e la ventana del navegador a(ar%!e toda la pantalla YD n!evaLentana.9indo9.&oveTo;0$ 0>M n!evaLentana.9indo9.resi)eTo;s reen.availJidt*$ s reen.avail,eig*t>M n!evaLentana.do !&ent.9rite;?E*t&lFE*eadFEtitleF?C ?Lentana reada on el o("eto Jindo9EDtitleFED*eadFXn?>M n!evaLentana.do !&ent.9rite;?E(odyFE'or&FXn?>M n!evaLentana.do !&ent.9rite;?Einp!t type@P(!ttonP ?C ?val!e@P0errarP on0li 4@P9indo9. lose;>MPFXn?>M n!evaLentana.do !&ent.9rite;?ED'or&FXn?>M n!evaLentana.do !&ent.9rite;?ED(odyFED*t&lFXn?>M n!evaLentana.do !&ent. lose;>M N DD IIF EDs riptF E(odyF E'or&F Einp!t type@?(!tton? val!e@?A(rir? on0li 4@?n!eva;>M?FE(rF ED'or&F ED(odyF ED*t&lF

Co #l$0i. 0o&o on l!si1n general tene&os %!e BO#$ per&ite a eder y &odi'i ar las

propiedades de las ventanas del propio navegador$ ade&+s pode&os a eder a la p+gina 9e( o al navegador %!e !sa&os &ediante el !so de alg!nos o("etos. Lo o("etos disponi(les son. do !&ent ;p+gina 9e( a t!al>$ 9indo9 ;la ventana del navegador>$ *istory ;*istorial de navega i1n>$ lo ation ; ontiene la ORL a t!al> y navigator ;in'or&a i1n relativa al navegador %!e !sa&os>. 0ada !no de estos o("etos !enta on &:todos y propiedades. ,a e&os !so de !n &:todo para reali)ar !na a i1n ;por e"e&plo$ es ri(ir texto en la p+gina 9e(> y *a e&os !so de !na propiedad !ando le asigna&os !n valor a esta ;por e"e&plo$ darle olor al 'ondo de la p+gina 9e(>$et .

BIBLIOGRA-IA
Introduccin a JavaScript, autor: Javier Eguluz Prez; Captulo 2. El primer cript, p!g ."#$"% E ta ver in impre a e cre el 2% de marzo de 2&&' ( todava e t! incompleta. )a ver in m! actualizada de lo contenido de e te li*ro e puede encontrar en +ttp:,,---.li*ro -e*.e ,.ava cript

También podría gustarte