Code js dans une page html mis dans une page js [Résolu]

Signaler
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
-
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
-
Bonjour a tous,

Voila un petit code ci dessous que j'utilise et qui marche quand il est utilise dans une page HTML.

Mais, si j'essaye de le mettre dans une page javascript (extension .js), cela ne marche plus (voir message d'erreur tout en bas en comment):

Pour appeller mon code JS:
<script src="JavaScript/CubeImage.js" type="text/javascript"></script>


Le code JS:
var specifyimage=new Array() //Your images
specifyimage[0]="Pictures/A.jpg"
specifyimage[1]="Pictures/B.jpg"
specifyimage[2]="Pictures/C.jpg"

var delay=3000 //3 seconds

//Counter for array 
var count =1;

var cubeimage=new Array()
for (i=0;i<specifyimage.length;i++){
cubeimage[i]=new Image()
cubeimage[i].src=specifyimage[i]
}

function movecube(){
if (window.createPopup)
cube.filters[0].apply()
document.images.cube.src=cubeimage[count].src;
if (window.createPopup)
cube.filters[0].play()
count++;
if (count==cubeimage.length)
count=0;
setTimeout("movecube()",delay)
}

window.onload=new Function("setTimeout('movecube()',delay)")

//Webpage error details
//Message: 'cube.filters.0' is null or not an object
//Line: 21


Je ne comprends pas. Il faut dire que je suis debutant en JS et en OOP.
Faut-il creer un objet pour cube, mais comment si prendre?
Toutes suggestions, indices ou encore mieux directement la solution a ce petit probleme est la bienvenue?

J'ai le sentiment que c'est quelquechose de simple, mais apparement pas pour moi.

Merci,
JLuc01

4 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
Cela veut-il dire que ca devrait marcher avec d'autres navigateurs?? Apparement pas avec Google Chrome!
l'effet est exclusif IE mais la rotation d'images se fera quoiqu'il arrive.

[i][b]Et pourquoi cela ne peut pas marcher avec IE?
Ce code marche quand il est integre a ma page html quand j'utilise IE8./b/i
une erreur doit trainer quelque part.
essaies ce qui suit cela fonctionne nickel
le fichier HTML
<html>
<head>
<title>[PetoleTeam]Cube Image</title>
<script type"text/javascript" src"cubeimage.js"></script>
</head>



</html>

et le fichier cubeimage.js , légérement revu et corrigé
//Script original
//Picture Cube slideshow - By Tony Foster III
//Visit JavaScript Kit (http://javascriptkit.com) for script
var specifyimage  = new Array(); //Your images
specifyimage[0] = "Pictures/A.jpg";
specifyimage[1] = "Pictures/B.jpg";
specifyimage[2] = "Pictures/C.jpg";

var delay = 3000; //3 seconds

//Counter for array 
var count = 1;

var cubeimage = new Array();
for (i = 0; i < specifyimage.length; i++) {
  cubeimage[i] = new Image();
  cubeimage[i].src = specifyimage[i];
}

function movecube() {
  var cube = document.images["cube"];
  if( cube){
    if( cube.filters)  
      cube.filters[0].apply();

    cube.src = cubeimage[count].src;

    if( cube.filters)    
      cube.filters[0].play();

    count++;
    if (count == cubeimage.length)
      count = 0;

    setTimeout( movecube, delay);  
   }
   else
     alert('Vous devez avoir\nune balise IMG avec un NAME ="cube"\ndans votre document !');
}

window.onload = function(){
   setTimeout( movecube, delay);
}

à toi de jouer...

;O)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
Bonjour,
aucune raison, mais exclusif IE
Faut-il creer un objet pour cube
apparemment non...

l'erreur est peut être ailleurs....



;O)
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
Merci pour la reponse.

aucune raison, mais exclusif IE
Il est vrai que j'ai teste avec IE8.
Cela veut-il dire que ca devrait marcher avec d'autres navigateurs?? Apparement pas avec Google Chrome!

Et pourquoi cela ne peut pas marcher avec IE?
Ce code marche quand il est integre a ma page html quand j'utilise IE8.

Apres tout, je voulais garder les codes JS dans un dossier pour une meilleure organisation du site, mais pourquoi s'embeter quand cela marche autrement.

Merci encore, je vais me pencher encore quelque temps sur ce probleme, puis je passerais a autre chose...

Si toutefois quelqu'un a une autre idee ou commentaire, c'est le bienvenu.

JLuc
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
Eureka! J'ai compris mon erreur.

Il me manquait simplement: style="filter:progid:DXImageTransform.Microsoft.Stretch(stretchStyle='PUSH')" et en plus apres differents essais, j'avais supprimer name="cube".
Erreur de debutant, je suppose.

Merci beaucoup pour le code, il marche parfaitement. Et surtout un grand merci pour tes explications et code, cela m'a permis de comprendre et/ou de confirmer certains details.

De plus, je dois definitivement tester mes pages html avec les differents navigateurs et pas seulement IE.

Merci,
JLuc01