Accueil > Forum > > > > Comment insérer le même code javascript plusieurs fois dans la même page?
Comment insérer le même code javascript plusieurs fois dans la même page?
jeudi 20 janvier 2011 à 07:54:13 |
Comment insérer le même code javascript plusieurs fois dans la même page?

davis22
|
Bonjour,
Voici mon soucis, je veux mettre 3 script de rotation iframe dans le meme page.
Le problème c'est que je ne sais pas comment faire pour mettre le même code 3 fois sans que ça bugg, voici le code :
Code Javascript : <script language="JavaScript1.2">
var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1
var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1
//Specify IFRAME display attributes
var iframeprops='width=330 height=430 marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="1" scrolling="no"'
//Specify random URLs to display inside iframe
var randomcontent=new Array()
randomcontent[0]="P_2.html"
randomcontent[1]="P_3.html"
randomcontent[2]="P_4.html"
randomcontent[3]="P_5.html"
//No need to edit after here
if (ie||dom)
document.write('<iframe id="dynstuff" src="" '+iframeprops+'></iframe>')
function random_iframe(){
if (ie||dom){
var iframeobj=document.getElementById? document.getElementById("dynstuff") : document.all.dynstuff
iframeobj.src=randomcontent[Math.floor(Math.random()*randomcontent.length)]
}
}
window.onload=random_iframe
</script>
et aussi je veux mettre le delais de rotation pour chaque iframe EX apres 10s il change la page dans l'iframe!
Si quelqu'un peut m'aider à en mettre 3 dans la même page ce serait tres gentille merci d'avance
|
|
jeudi 20 janvier 2011 à 15:45:06 |
Re : Comment insérer le même code javascript plusieurs fois dans la même page?

Zobibol
|
Bien le bonjour, il faut affiner les méthodes utilisées:
tout d'abord commençons par le début (sans quoi il n'y aura jamais de fin):
Ce genre de code n'est pas très utile pour ce genre de traitement les méthodes utilisées sont toutes implémentées sur les navigateurs.
Code Javascript :
var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1
var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1
enfin, le code revus et modifié (désolé pour les quelques fautes d'orthographe et autres...
Code Javascript :
// l'utilité de ces deux variables sont plus que discutables...et complétement inutile (d'ailleurs, elles ne sont plus utilisées).
//var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1
//var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1
//Specify IFRAME display attributes
var iframeprops='width=330 height=430 marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="1" scrolling="no"'
//Specify random URLs to display inside iframe
var randomcontent=new Array()
randomcontent[0]="P_2.html"
randomcontent[1]="P_3.html"
randomcontent[2]="P_4.html"
randomcontent[3]="P_5.html"
// liste des identifiants des frames, pour rajouter une nouvelle iFrame, il suffit simplement de rajouter un id à l'enregistrement suivant.
// Il est de plus possible d'appliquer un style directement sur les iframe via leurs identifiants.
var listFramesId = ["dynstuff", "frame1", "frame2"];
// on va ajouter autant d'iframe que préciser dans la liste des iframes (listFramesId);
for ( var i = 0; i<listFramesId.length; i++){
document.write('<iframe id="'+listFramesId[i]+'" src="" '+iframeprops+'></iframe>');
}
// Variable contenant le timer de rafraichissement des iframes.
var interval = null;
function random_iframe(){
for ( var i = 0; i < listFramesId.length; i++){
// La méthode getElementById est implémenté dans la plupart des navigateurs.
var iframeobj= document.getElementById(listFramesId[i]);
// Affecte la nouvelle source à l'iframe.
iframeobj.src=randomcontent[Math.floor(Math.random()*randomcontent.length)];
}
}
/**
* Chargement de la page.
*/
window.onload=function (){
// Affichage en entrée dans la page.
random_iframe();
// et enfin, déclenche un interval (toutes les 10 secondes), interval étant exprimé en millième de seconde, 10 secondes, font donc 10000 millisecondes
interval = setInterval ("random_iframe()", 10000);
}
/**
* Fermeture de la page
*/
window.onunload = function(){
// Détruit l'interval afin d'éviter les effets de bores et une conso mémoire importante.
clearInterval( interval);
}
Voilà qui devrait être pas mal non ?
[o-_-o]
|
|
jeudi 20 janvier 2011 à 17:57:57 |
Re : Comment insérer le même code javascript plusieurs fois dans la même page?

davis22
|
Merci Zobibol ;) mais ton nouveau script n'affiche rien il fonction pas
je suis novice j'ai cherché l'erreur mais je l'ai pas trouvé .
aidez moi svp et merci pour l'effort !!!
|
|
jeudi 20 janvier 2011 à 21:37:00 |
Re : Comment insérer le même code javascript plusieurs fois dans la même page?

davis22
|
Pardon Zobibol c'etait mon erreur !Merci ca marche nickel . Merci 1000 fois
juste je veux que chaque iframe avec sa temps de rotation ex :
iframe 1 tout les 10s iframe 2 : 15s iframe 3 : 27s
|
|
vendredi 21 janvier 2011 à 09:43:05 |
Re : Comment insérer le même code javascript plusieurs fois dans la même page?

Zobibol
|
Réponse acceptée !
Bien le bonjour, la nuit portant conseil
Voilà maintenant un code "plus propre" et qui permet justement de pouvoir affecter une durée de rotation par iframe.
Code Javascript :
/**
* Properiété par défaut d'une frame.
*/
var defaultFrameProperties={
width:"330",
height:"430",
marginwidth:"0",
marginheight:"0",
hspace:"0",
vpsace:"0",
frameborder:"1",
scrolling:"no"
};
/**
* Contient la liste des intervals (il va y en avoir autant qu'il y a d'iframe).
*/
var listIntervals = new Array();
/**
* Liste des urls.
*/
var randomcontent=["P_2.html","P_3.html","P_4.html","P_5.html"];
/**
* liste des iframes à créer, enregistrement du type:
* {
* frameId:"identifiant de l'iframe à créer",
* timerRefresh:durée de entre chaques rafraîchissement exprimé en seconde".
*/
var listFramesId = {
frames:[
{
frameId:"frame1",
timeRefresh:25
},
{
frameId:"frame2",
timeRefresh:6
},
{
frameId:"frame3",
timeRefresh:7
}
]
};
/**
* Retourne une adresse aléatoire.
*/
function getRandomUrl(){
return randomcontent[Math.floor(Math.random()*randomcontent.length)];
}
/**
* Création des frames et de leur timer respectif.
*/
function createFrames(){
// Récupération des enregistrements de type frame.
var frames = listFramesId.frames;
// Parcours ceux-ci
for ( var frs in frames){
// frs contient frameId (identifiant de la frame) et timeRefresh (durée en seconde de rafraîchissement de celle-ci).
// création de la frame.
var frame = document.createElement("iframe");
// Affecte son identifiant.
frame.id = frames[frs].frameId;
// affecte sa source.
frame.src =getRandomUrl();
// initialisation des propriétés de la frames.
// Parcours l'enregistrement des propriétés par défaut de la frame.
for ( var i in defaultFrameProperties){
// Affecte les propriétés à l'iFrame
frame[i] =defaultFrameProperties[i];
}
// ajoute la frame au document body
document.body.appendChild (frame);
// Déclenche un interval pour la frame.
listIntervals.push (setInterval("refreshFrame('"+frames[frs].frameId+"')", frames[frs].timeRefresh * 1000));
}
}
/**
* Rafraîchit une iframe
*
* @param _id
* identifiant de l'iFrame à rafraîchir.
*/
function refreshFrame(_id){
var iFrame = document.getElementById(_id);
iFrame.src = getRandomUrl();
}
/**
* Lors du chargement création des iframes et des timers associés
*/
window.onload=function (){
createFrames();
}
/**
* Sur déchargement de la page, "tue" les timers
*/
window.onunload = function(){
// Parcours la liste des intervalles et les stops.
for ( var i=0; i<listIntervals.length; i++){
clearInterval(listIntervals[i]);
}
}
On commence à s'éloigner du source d'origine, mais c'est pas grave.
l'utilisation de json est semble-t-il le plus indiqué pour résoudre ce problème.
Ainsi, j'ai mis en place une variable listFramesId.frames qui est typée comme ceci:
frameId:"identifiant de l'iframe à créer",
timeRefresh:durée de rafraîchissement en seconde.
le source est relativement commenté avec les fautes d'orthographe et autre !
[o-_-o]
|
|
vendredi 21 janvier 2011 à 23:20:37 |
Re : Comment insérer le même code javascript plusieurs fois dans la même page?

davis22
|
Merci Zobibol :) t'es le meilleur
|
|
mardi 1 mars 2011 à 14:10:04 |
Re : Comment insérer le même code javascript plusieurs fois dans la même page?

davis22
|
Bonjour
le script marche tres bien mais il y a un petit probleme :
l'adresse du page qui affiche les iframes ce répète des centaines de fois dans l'historique du navigateur qui rendre le retour a la page précédente impossible .
une aide s'il vous plait :)
|
|
mardi 1 mars 2011 à 14:41:07 |
Re : Comment insérer le même code javascript plusieurs fois dans la même page?

Zobibol
|
Re-bonjour,
oups, je n'avais pas pris en compte ce cas.
Donc, c'est la méthode refreshFrame qui ne va pas pour le fonctionnement désiré.
il suffit de la remplacer par celle-ci :
Code Javascript :
/**
* Rafraîchit une iframe
*
* @param _id
* identifiant de l'iFrame à rafraîchir.
*/
function refreshFrame(_id){
var iFrame = document.getElementById(_id);
iFrame.contentWindow.location.replace(getRandomUrl()); ;
}
qui au lieu de faire un iFrame.src fait un replace. Ce code fonctionne avec FF et IE pour les autres...
[o-_-o]
|
|
mardi 1 mars 2011 à 15:46:16 |
Re : Comment insérer le même code javascript plusieurs fois dans la même page?

davis22
|
bonjour
ca marche nickel ! merci infiniment
|
|
samedi 21 mai 2011 à 08:43:56 |
Re : Comment insérer le même code javascript plusieurs fois dans la même page?

davis22
|
Re-bonjour :)
voila sur firefox et IE 8 les attributs des frames ne fonctionnent pas tous
var defaultFrameProperties={
width:"330", foction
height:"430", fonction
marginwidth:"0", non
marginheight:"0", non
hspace:"0", non
vpsace:"0", non
frameborder:"1", non
scrolling:"no" fonction
saviez vous pourquoi . aidez moi s'il vous plait
merci
|
|
Cette discussion est classée dans : page, code, iframe, document, randomcontent
Répondre à ce message
Sujets en rapport avec ce message
Iframes recuperation de donnees [ par mhiblot ]
voila mon pb. sur 1 premier page, g 1 formulaire avec une iframe en plus.nommee 'iframe' :p dans cette iframe g 2 champs et un bouton. lorque je cl
document.title [ par fdthierry ]
Bonjour,J'ai une page avec une iframe (IfrmA.htm).Je sais renommer la barre de titre à partir de la page chargée dans la iframe.parent.document.title=
Question code double lien sur même page [ par philoumexes ]
Bonjour, je suis tout neuf! dans ce forum et surtout dans le javascript, et j'ai besoin de vous!!!J'ai appliqué ce, tiré d'un code posté en 2003, et i
IFRAME et Javascript [ par kokoariko ]
Bonjour a tous,Voila ce que je veux entrer un nouveau commentaire SANS recharger la page principale, j'ai donc un IFRAME qui appelle une page PHP, ma
Générer des iFrame dans nouvelle page avec FF. [ par Tireur ]
Allo tout le monde, je vous soumet les informations/interrogations. Regardez le code qui suit, avec Internet Explorer il fonctionne très bien. Je v
afficher une zone qu'apres le clic de l'utilisateur [ par mickael56100 ]
Bonjour je voudrais afficher un fieldset lorsque l'utilisateur clique sur Mot de passe oublié en dessous du premier.Voici mon code : Connexion
PROBLEME CREATION "IFRAME" ET "PARENT.DOCUMENT" [ par MALINOIS77 ]
Bonjour, Je suis en train d'essayer d'apprendre diverses choses concernant la création des pages web, je fais actuellement des essais interne dans mo
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Forum
UTILISER UN .JSUTILISER UN .JS par zaikoe
Cliquez pour lire la suite par zaikoe
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|