none
Onload RRS feed

  • Pregunta

  • Hola a todos:

    Tengo una función JavaScript en un fichero javascript

    window.onload=function(){if(!document.getElementById('ctl00_cphcontenido_hfmantenerscrollportada') || document.getElementById('ctl00_cphcontenido_hfmantenerscrollportada') && document.getElementById('ctl00_cphcontenido_hfmantenerscrollportada').value==1)
    {var pos=window.name || 0;
        window.scrollTo(0,pos);}
    }
    

    En una de mis páginas tengo un onload en el body.

    A la hora de ejecutar, me hace le segundo script, el primero no. ¿Cómo hacer los dos JavaScript? ¿Puedo poner el function en el segundo JavaScript?

    Gracias de antemano

    domingo, 3 de enero de 2016 9:15

Respuestas

  • Lo que recomiendo es modificar tu archivo js para que quede así

    function MyLoadFunction(){
    	if(!document.getElementById('ctl00_cphcontenido_hfmantenerscrollportada') || 
    		document.getElementById('ctl00_cphcontenido_hfmantenerscrollportada') && 
    		document.getElementById('ctl00_cphcontenido_hfmantenerscrollportada').value==1){
    		
    		var pos=window.name || 0;
    		window.scrollTo(0,pos);
    	}
    }

    Lo que puedes poner en el body de las páginas es encadenar funciones

    <body onload="func1Local(); MyLoadFunction();">

     


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 4 de enero de 2016 8:28
    Moderador

Todas las respuestas

  • No entiendo bien a qué te refieres cuando dices que te ejecuta el segundo script y no el primero.

    ¿Cuál es el primero y cuál el segundo?

    En cualquier caso el método scrollTo recibe las coordenadas horizontal y vertical a las que realizar el scroll y tú le estás pasando el nombre de la ventana como coordenada vertical.

    ¿Qué es lo que intentas hacer exactamente?


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    domingo, 3 de enero de 2016 10:14
  • Hola:

    Gracias, Asier.

    El primer JavaScript es la función del fichero JavaScript. El segundo es el onload de la páginas aspx

    Lo que voy a hacer es dejar el script del fichero JavaScript tal como está

    Y en el onload de la página aspx añado el contenido del script de la función

    Tengo más de 200 páginas aspx. Unas tiene onload y otras no en el body.

    En todas ellas ejecuto el script del fichero JavaScript, llamo a dicho fichero. Y en algunas de ellas quiero que se ejecute además el onload del body

    Espero haberme explicado bien.

    Si se os ocurre algo mejor, bienvenido, puesto que tendré que modificar el onload del body en las páginas que lo tienen

    Gracias de antemano.

    PS: El script del fichero JavaScript  me funciona bien tal como está


    • Editado volar.2016 domingo, 3 de enero de 2016 12:34
    domingo, 3 de enero de 2016 12:31
  • hola

    >>El primer JavaScript es la función del fichero JavaScript. El segundo es el onload de la páginas aspx

    pero en el codigo que muestras no veo la llamada a la funcion del primer javascript, si se ve el onload pero solo esta este unicamente

    >>En todas ellas ejecuto el script del fichero JavaScript, llamo a dicho fichero

    disculpa pero los ficheros no se llaman, en la pagina ubicas un <script scr="nombre.js" > pero es una referencia al .js

    despues deberia poner en el codigo cual es la funcion que quieres invocar de ese .js y eso es lo que no visualizo

    Nota: no evaluaste usar jquery?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 3 de enero de 2016 14:01
  • Una página SOLO puede tener un handler o manejador para el evento load. Si estás usando un window.onload y añades otro en el atributo onload de la etiqueta <body>, únicamente funcionará uno de ellos. 



    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 4 de enero de 2016 8:22
    Moderador
  • Lo que recomiendo es modificar tu archivo js para que quede así

    function MyLoadFunction(){
    	if(!document.getElementById('ctl00_cphcontenido_hfmantenerscrollportada') || 
    		document.getElementById('ctl00_cphcontenido_hfmantenerscrollportada') && 
    		document.getElementById('ctl00_cphcontenido_hfmantenerscrollportada').value==1){
    		
    		var pos=window.name || 0;
    		window.scrollTo(0,pos);
    	}
    }

    Lo que puedes poner en el body de las páginas es encadenar funciones

    <body onload="func1Local(); MyLoadFunction();">

     


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 4 de enero de 2016 8:28
    Moderador