Code js dans une page html mis dans une page js

Résolu
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 - 21 juin 2010 à 22:07
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 - 24 juin 2010 à 00:15
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

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
23 juin 2010 à 20:04
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)
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
22 juin 2010 à 20:49
Bonjour,
aucune raison, mais exclusif IE
Faut-il creer un objet pour cube
apparemment non...

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



;O)
0
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 1
23 juin 2010 à 00:58
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
0
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 1
24 juin 2010 à 00:15
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
0
Rejoignez-nous