2009-02-06 8 views
9

Je veux écrire une application qui détecte quand une page est chargée dans le navigateur, alors je devrais pouvoir insérer le contenu au-dessus de la page Web chargée? Quelqu'un avec une idée sur la façon de faire cela?Comment puis-je détecter le chargement d'une page Web?

Veuillez noter que je devrais être capable de le faire dans n'importe quel navigateur (Firefox/IE).

Quelle langue devrais-je utiliser pour m'aider?

Comment puis-je détecter cela à partir d'une application externe?

Comment dois-je l'intégrer avec le navigateur?

Répondre

2

En Javascript, vous avez l'événement onload.

Edit: un exemple:

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

-1 pour l'ajout de JavaScript au format HTML. Mieux vaut l'externaliser complètement. –

0

événement OnLoad de Javascript pour le corps fait ce que vous voulez.

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

Javascript en utilisant l'événement onLoad(), attendra la page à charger avant d'exécuter.

<body onload="somecode();" > 

Si vous utilisez le document framework jQuery fonction prêt le code chargera dès que le DOM est chargé et avant que le contenu de la page sont chargés:

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

+1 pour avoir mentionné plus d'un sens – meouw

+0

Bonne réponse. Cependant, si l'affiche ne connaît pas le Javascript de base, je doute qu'il connaisse jQuery. – Zabbala

+0

Veuillez ne pas référencer W3Schools, utilisez plutôt MDN. – FluorescentGreen5

19

Vous utilisez javascript pour faire ce. Si vous ne savez pas comment utiliser javascript, je vous recommande de lire sometutorialsfirst. Une fois que vous avez une connaissance de base de javascript, vous pouvez détecter le chargement d'une page à l'aide de l'événement window.onload.

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

Edit: Si vous voulez ajouter plus d'une fonction onload, et ne pas utiliser une librairie javascript, vous pouvez envelopper votre propre hanlder onload.

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

+1 parce que vous n'avez pas dit 'utilisez simplement jQuery' – meouw

+0

ditto.Ça va au-delà d'une blague ici. "Comment attribuer une valeur à une variable?" "Utilisez jQuery!" – bobince

+1

Pourquoi ne pas utiliser la méthode native 'addEventListeners'? –

13

Mieux que onload est d'utiliser une fonction d'un cadre existant, car onload ne répond parfois après toutes les ressources (images et ainsi de suite) sont chargés et non seulement la page.

Par exemple jQuery:

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

+1 parce que vous expliquez que les bibliothèques ont un meilleur chargement – meouw

+1

+1, c'est 10x mieux que l'événement onload pour les raisons précises que vous mentionnez. Trop de personnes utilisent onload et il se peut qu'il ne se déclenche pas pendant quelques secondes après l'affichage de la page à l'utilisateur. –

+0

Cela a également l'avantage de jouer bien avec les gestionnaires d'événements existants. window.onload les écrasera par contre. –

15

Pourquoi ne pas utiliser les auditeurs? De cette façon, vous pouvez ajouter autant d'écouteurs que vous le souhaitez, vous pouvez également les détacher! Et detachEvent.

Questions connexes