Re: [javaEScript] duda sobre visibilidad y ámbito de funciones

carlos campderrós gilipollas.desconcertante en gmail.com
Jue Ago 17 02:01:02 PDT 2006


On 8/17/06, Diego Rodriguez <diegohumanista en gmail.com> wrote:
>
> Oye, yo lo tengo en varios archivos separados y no he tenido problemas...
> Ser=E1 que estar=E1s cargando las rutinas de inicializaci=F3n en algun lu=
gar
> diferente al onload?
> Si lo pones al final del html, es posible que el navegador no haya cargado
> los archivos .js cuando ejecute tu codigo... creo que si lo pones en el
> onload a la funcion que inicialice va a funcionar...
>
> Diego
>

lo ten=EDa as=ED en el html:
 <html>
    <head>
        <script type=3D"type/javascript" src=3D"utils.js"></script>
        <script type=3D"type/javascript" src=3D"domNavigation.js"></script>
        <script type=3D"type/javascript" src=3D"newResource.js"></script>
    </head>
...
</html>

y la =FAltima l=EDnea de newResource.js es "addListener(window, "load",
loadInputHandlers);". addListener es una funci=F3n que tom=E9 prestada de M=
art=EDn
Szyszlican de un post de la lista ovillo y que siempre me ha venido bien
para a=F1adir eventos de forma "compatible" (la a=F1ado a continuaci=F3n), y
loadInputHandlers asocia onclicks a funciones (la a=F1ado al final). Supongo
que si cambio addListener(elem, "click", fooBar); por elem.onclick =3D fooB=
ar;
desaparecer=E1 el problema con el this que he explicado en otro mail, pero =
eso
es otro tema. Bueno, no s=E9 si he aclarado algo la verdad... Por ahora como
soluci=F3n cutre he adoptado seguir con varios archivos .js, y despu=E9s de
modificaci=F3n, volcar todos los archivos a otro, que es el q llamo en el
html.

function addListener(obj,evt,func)
{
    if (obj.attachEvent)
        obj.attachEvent('on' + evt, func);

    else {
        if (obj.addEventListener) {
            obj.addEventListener(evt,func,false);
        }
        else {
            if (obj.eval) {
                obj["on"+evt] =3D func;
            } else {
                //alert("Error adding listener\nObject:"+obj+"ID:"+obj.id+"
Name:"+obj.name+" TagName:"+obj.tagName+"\nEvent:"+evt);
            }
        }
    }
}


function loadInputHandlers()
{
    dbg =3D document.getElementById("debug_box");
    debug("loadInputHandlers() started");
    addListener(document.getElementById("propertiesButton"), "click",
addToList);
    addListener(document.getElementById("functionalitiesButton"), "click",
addToList);
    addListener(document.getElementById("nameButton"), "click", setName);
    addListener(document.getElementById("createButton"), "click",
createXML);
    document.getElementsByTagName("BODY")[0].removeChild(
document.getElementById("nojs"));
    debug("loadInputHandlers() finished");
}

-- =

Si no puedes deslumbrar con tu inteligencia,
desconcierta con tus gilipolleces
------------ pr=F3xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: /pipermail/javaescript-scriptia.net/attachments/20060817/3481d348/atta=
chment.htm


Más información sobre la lista de distribución javaEScript