none
Problemas con carga de página. RRS feed

  • Pregunta

  • Hola chicos buen día, como andan?

    Les comento un problema que ando teniendo.

    Estoy en un proyecto laboral, donde una empresa X, me provee un script "injector.js" al que accedo remotamente desde la pagina, para ser más gráfico, "<script src='www.empresax.com/scripts/injector.js'></script>"  que se encarga de ponerle estilo en header y footer a la página. Dicho script se pone por requerimiento por sobre la etiqueta </body>. Sería "el ultimo en cargarse", ahora ¿Qué sucede?, este script, además, tiene información que necesito accesar para proveerla por ajax a mi servidor.

    La información que necesito es: tpi.user.line(1120456510), tpi.user.name(daniel ayala), tpi.user.login(true)

    Si pongo un alert debajo de la llamada al script, tpi.user.line viene vacio.

    Si lo pongo en el ready (jquery) tpi.user.line, viene vacio.

    He agregado un botón para probar que sea el tiempo de carga de la página y efectivamente lo fué, me retorno el número de teléfono "1120456510" (para el ejemplo en cuestion).

    Hay alguna forma de poder validar cuando se terminó de cargar toda la página entera junto a sus scripts? Para recien ahí poder hacer un llamado a la funcion jquery que me hace un ajax?

    Mi objetivo es que esos datos se almacenen en variables de sesión.

    Saludos y gracias de antemano.


    Jose Sebastian Garcia

    miércoles, 27 de agosto de 2014 12:49

Respuestas

  • La carga de la página la puedes controlar desde jquery así .ready() jQuery

    $( document ).ready(function() {
      // Handler for .ready() called.
    });

    Este bloque de código javascript se ejecuta cuando se ha terminado de cargar completamente la página

    O puedes usar el window.onload() 

    window.onload=function(){SomeJavaScriptCode};

    Espero te sirva


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


    Perdón chicos por no avisar, ya lo pude resolver.

    El ready no me sirvió, ni en document, ni en window y menos en navigator. Use ajaxComplete. Eso fué lo que analizando encontre y me resultó.

                <%
            Dim code As String = ""
                
                If userName.Trim().Length = 0 Or userLine.Trim().Length = 0 Or (userLogged.Trim().ToUpper() = "FALSE" Or userLogged.Trim().ToUpper() = "TRUE") Then
                    code &= "<script>" & vbCrLf
                    code &= "   var visitado = false; " & vbCrLf
                    code &= "       $(document).ajaxComplete(function () { " & vbCrLf
                    code &= "           if (visitado == false) { " & vbCrLf
                    code &= "               $.post('./setData.aspx', { 'unam': tpi.user.name, 'unum': tpi.user.line, 'ulgd': tpi.user.login }); " & vbCrLf
                    code &= "               visitado = true; " & vbCrLf
                    code &= "           }" & vbCrLf
                    code &= "       });" & vbCrLf
                    code &= "</script>" & vbCrLf
                End If
            
                    Response.Write(code)
            
            %>
    Lo trabaje desde el aspx.


    Jose Sebastian Garcia


    • Editado JoGaSe miércoles, 27 de agosto de 2014 17:32
    • Marcado como respuesta JoGaSe miércoles, 27 de agosto de 2014 17:32
    miércoles, 27 de agosto de 2014 17:30

Todas las respuestas

  • La carga de la página la puedes controlar desde jquery así .ready() jQuery

    $( document ).ready(function() {
      // Handler for .ready() called.
    });

    Este bloque de código javascript se ejecuta cuando se ha terminado de cargar completamente la página

    O puedes usar el window.onload() 

    window.onload=function(){SomeJavaScriptCode};

    Espero te sirva


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


    • Editado Sergio Parra miércoles, 27 de agosto de 2014 13:27
    miércoles, 27 de agosto de 2014 13:25
  • La carga de la página la puedes controlar desde jquery así .ready() jQuery

    $( document ).ready(function() {
      // Handler for .ready() called.
    });

    Este bloque de código javascript se ejecuta cuando se ha terminado de cargar completamente la página

    O puedes usar el window.onload() 

    window.onload=function(){SomeJavaScriptCode};

    Espero te sirva


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


    Perdón chicos por no avisar, ya lo pude resolver.

    El ready no me sirvió, ni en document, ni en window y menos en navigator. Use ajaxComplete. Eso fué lo que analizando encontre y me resultó.

                <%
            Dim code As String = ""
                
                If userName.Trim().Length = 0 Or userLine.Trim().Length = 0 Or (userLogged.Trim().ToUpper() = "FALSE" Or userLogged.Trim().ToUpper() = "TRUE") Then
                    code &= "<script>" & vbCrLf
                    code &= "   var visitado = false; " & vbCrLf
                    code &= "       $(document).ajaxComplete(function () { " & vbCrLf
                    code &= "           if (visitado == false) { " & vbCrLf
                    code &= "               $.post('./setData.aspx', { 'unam': tpi.user.name, 'unum': tpi.user.line, 'ulgd': tpi.user.login }); " & vbCrLf
                    code &= "               visitado = true; " & vbCrLf
                    code &= "           }" & vbCrLf
                    code &= "       });" & vbCrLf
                    code &= "</script>" & vbCrLf
                End If
            
                    Response.Write(code)
            
            %>
    Lo trabaje desde el aspx.


    Jose Sebastian Garcia


    • Editado JoGaSe miércoles, 27 de agosto de 2014 17:32
    • Marcado como respuesta JoGaSe miércoles, 27 de agosto de 2014 17:32
    miércoles, 27 de agosto de 2014 17:30