11548 sujets

JavaScript, DOM et API Web HTML5

Pages :
Bonjour à tous,
Je me suis inscrit a une régie publicitaire qui permet a mes visiteurs d'appeler un numéro afin de mettre leur pub sur mon site.
Cela marche très bien, mais le problème est que le script est dans le menu, c'est à dire au début du code html. Et parfois, il faut attendre 10 secondes que le script se fasse, il y a marqué "en attente de truc.machin.com", et pendant ce temps ma page est bloquée...
Je voudrais garder ce script dans le menu, mais que le navigateur l'éxécute apres avoir chargé la page...

Est ce que quelqu'un a une idée ?? Smiley cligne
Pourquoi ne pas le mettre sur une feuille externe, et en demander le chargement qu'à la fin du chargement de ta page ?
Bonjour.

Un truc:

<img src="javascript:mafonction()" style="visibility:hidden;height:0"/>

... Permet l'exécution du code au moment voulu.
Pourquoi au moment voulu ? Il faut faire comment ?
Et dans mon fichier js externe, je fait comment pour appeler un script extérieur ?
... Parce qu'on peut placer la balise où on veux, par exemple à la fin de la page. Elle n'est pas associée à un évennement.

Sinon, on peut utiliser l'évennement onload qui s'exécute normalement après chargement:

<body onload="mafonction()">

Le contenu

</body>
Modifié par GeorgesM (31 Aug 2005 - 12:39)
de la même façon qu'une feuille de style externe :

<script type="text/javascript" src="mon_scripte.js"></script>

Tu colles ça dans le "head" de ta page, et tu n'oublies pas de baptiser ta feuille de script "mon_scripte.js", dans laquelle tu auras copié le script que tu as en haut de page.
Je crois qu'il existe aussi une façon de le placer en bas de page, pour qu'il ne soit appelé qu'à la fin du chargement de ta page, mais je ne sais pas comment.
Edit > ou peut-être tout simplement en déposant cette ligne en bas de page html, avant la fermeture du body ? Un expert te dira ça mieux que moi quand il passera !
Modifié par Macpom (31 Aug 2005 - 12:40)
GeorgesM a écrit :

Sinon, on peut utiliser l'évennement onload qui s'exécute normalement après chargement:

<body onload="mafonction()">

Le contenu

</body>

Dans ce cas, tu appelles le script au chargement de la page, justement...
Donc,
en bas de page, je met
<img src="javascript:fonction()" style="visibility:hidden;height:0"/>
Dans le haut de la page, je met
<script type="text/javascript">
fonction{

<!-- Et la je fais comment pour appeler http://www.truc.com/script.js ??

}
</script>

Merci à tous c'est du rapide !
Dans la fonction appelée, l'emploi judicieux d'un timer résoudra le problème.

timer = setTimeout("MonAutreFonction()", 500ms);

Modifié par GeorgesM (31 Aug 2005 - 12:47)
Merci pour le merci...

C'est plus carré avec <body onload="...">

ensuite, pour charger une nouvelle page, c'est

document.href="http:monurel.com";



timer = setTimeout("document.href='http:monUrl.com'", 500ms);


en une seule passe, on aurrait
<body onload="timer = setTimeout(\"document.href='http:monUrl.com'\", 500ms")>
... à tester...
Modifié par GeorgesM (31 Aug 2005 - 12:53)
Comme dit MacPom:

a écrit :
de la même façon qu'une feuille de style externe :

<script type="text/javascript" src="mon_scripte.js"></script>

Tu colles ça dans le "head" de ta page, et tu n'oublies pas de baptiser ta feuille de script "mon_scripte.js", dans laquelle tu auras copié le script que tu as en haut de page.
Je crois qu'il existe aussi une façon de le placer en bas de page, pour qu'il ne soit appelé qu'à la fin du chargement de ta page, mais je ne sais pas comment.
Edit > ou peut-être tout simplement en déposant cette ligne en bas de page html, avant la fermeture du body ? Un expert te dira ça mieux que moi quand il passera !


Je dois y aller... à plus
Modifié par GeorgesM (31 Aug 2005 - 12:55)
MERCI Smiley cligne Smiley cligne Smiley cligne

Et ça marche pour charger un script externe ?

timer = setTimeout("document.href='http:monUrl.com/rep/script.js'", 500ms);

Car ce que je veux remplacer c'est <script src="..."></script>, et le mettre dans une fonction Smiley sweatdrop
Bon, bin j'y arrive pas.
Ce que j'ai fais :

A l'endroit ou je veux le script :


<script language="JavaScript" id="script_pub"></script>



Dans mon fichier js appelé en haut de page :


window.onload=Init;

function Init()
{
timer = setTimeout("document.getElementById('script_pub').src='http://....select.php4?...' ", 500);
} 


Il se passe quelque chose puisque le navigateur met en attende de ... ; mais après page blanche.... Smiley sweatdrop
Au début de ton script, il y a le nom de la fonction, c'est celle que tu appelles au moment où tu en as besoin :

function MaFonstionQuiEstNommée(){ ... la suite du code ... }

C'est "MaFonctionQuiEstNommée" le nom de la fonction que tu appelles.
Tu peux donc ainsi mettre plusieurs fonction dans un même fichier, puisque ce sera celle dont tu auras besoin qui sera appelée.
Edit > Au passage, ce sera "Dans un document externe, appeler une fonction", et non l'inverse, comme tu le dis plus haut...
Modifié par Macpom (31 Aug 2005 - 14:22)
Oui ça je sais bien...

ce que je veux faire c'est remplacer


<script language="JavaScript" src="http://www.site.com/page.php?var=truc"></script>


Par quelque chose qui permette de retarder...
Je pense que si tu mets l'appel de ton script (la ligne que je t'ai donnée précédemment) à la fin du chargement de ta page (juste avant la balise </body>), au lieu de le placer dans ton <head>, ton script se chargera et s'exécutera à la fin de ta page, alors que le reste sera affiché, tout simplement. Il te faut essayer celà.
Edit > Un petit lien qui pourra peut-être t'aider :
http://www.commentcamarche.net/javascript/jsimplant.php3
Modifié par Macpom (31 Aug 2005 - 14:39)
oui, mais la on tourne autour du pot.

Dans tous les cas, je dois utiliser une fonction.
Et dans tous les cas, le script a appeler est complement externe à mon site.

Donc que ce soit en utilisant ta méthode ou la mienne, il faut trouver le moyen d'appeler ce script extérieur dans la fonction.
Il faut que tu places un "window.onload = LeNomDeMaFonction;" quelque part dans ta page html, mais je ne sais plus où ni comment...
(si tu le mets à la fin de ton fichier mon_script.js, il se chargera dès son appel).
Pages :