2009-02-06 25 views
9

Quiero escribir una aplicación que detecta cuando una página se carga en el navegador, entonces debería ser capaz de insertar contenido en la parte superior de la página web cargada? ¿Alguien con una idea sobre cómo hacer eso?¿Cómo puedo detectar cuándo se carga una página web?

Tenga en cuenta que debería poder hacer esto en cualquier navegador (Firefox/IE).

¿Qué idioma debo usar para ayudarme a hacer esto?

¿Cómo puedo detectar esto desde una aplicación externa?

¿Cómo debo integrar esto con el navegador?

Respuesta

2

En Javascript, tiene el evento onload.

Editar: un ejemplo:

<html> 
    <head>...</head> 
    <body onload="doSomethingWhenPageIsLoaded();"> 
    ... 
    </body> 
</html> 
+1

-1 para agregar JavaScript a HTML. Es mejor externalizarlo por completo. –

0

evento OnLoad Javascript para que el cuerpo hace lo que quiere.

<body onload="somefunc();"> 
2

Javascript utilizando el evento onLoad(), esperará a la página para ser cargado antes de ejecutar.

<body onload="somecode();" > 

Si está utilizando la función de lista de documentos del framework jQuery el código se carga en cuanto se carga el DOM y antes de que los contenidos de las páginas se cargan:

$(document).ready(function() { 
    // jQuery code goes here 
}); 
+0

+1 por mencionar más de una forma – meouw

+0

Buena respuesta. Sin embargo, si el afiche no conoce el Javascript básico, dudo que sepa jQuery. – Zabbala

+0

Por favor, no haga referencia a W3Schools, use MDN en su lugar. – FluorescentGreen5

19

Se podría usar javascript para hacer esta. Si no sabes cómo usar javascript, te recomiendo que leas sometutorialsfirst.

Después de tener una comprensión básica de javascript, puede detectar cuándo se ha cargado una página utilizando el evento window.onload.

window.onload = function() { 
    addPageContents(); //example function call. 
} 

Editar: Si desea agregar más de una función onload, y no utilizar una biblioteca de Javascript, se puede envolver su propio hanlder proceso de carga.

window.whenloaded = function(fn) { 
    if (window.onload) { 
    var old = window.onload; 
    window.onload = function() { 
     old(); 
     fn(); 
    } 
    } else { 
    window.onload = fn; 
    } 
} 
+8

+1 porque no dijo 'solo use jQuery' – meouw

+0

ídem.Está más allá de una broma aquí. "¿Cómo asigno un valor a una variable?" "¡Usa jQuery!" – bobince

+1

¿Por qué no utilizar el método nativo 'addEventListeners'? –

13

Mejor que onload es el uso de una función de un marco existente, porque a veces onload no responde después de todos los recursos (imágenes, etc.) están cargados y no sólo la página.

Por ejemplo jQuery:

$(document).ready(function() { 
    // do stuff 
}) 
+2

+1 porque explica que las bibliotecas tienen una carga mejor – meouw

+1

+1, esto es 10 veces mejor que el evento de carga por los motivos precisos que menciona. Demasiadas personas usan la carga y es posible que no se active durante unos segundos después de que se muestre la página al usuario. –

+0

Esto también tiene la ventaja de jugar bien con los controladores de eventos existentes. window.onload, por otro lado, los sobrescribirá. –

15

Por qué no utilizar los oyentes?

// Everything but IE 
window.addEventListener("load", function() { 
    // loaded 
}, false); 

// IE 
window.attachEvent("onload", function() { 
    // loaded 
}); 

¡De esta manera puede agregar tantos Escuchadores como desee, también puede separarlos! removeEventListener y detachEvent.

Cuestiones relacionadas