Je fais un bookmarklet JavaScript qui redimensionne toutes les images, périodiquement.
javascript: function x(){ for(i=0;i<=document.getElementsByTagName('img').length;i++) document.getElementsByTagName('img')[i].width+=1; }; t = window.setTimeout("x()",100); void(0);
6 Réponses :
Voici le même code correctement en retrait pour la clarté window.seetticout () exécute le code transgé une seule fois car il est censé. Si vous souhaitez exécuter le code plus souvent, utilisez Window.setInterval (). P> P>
Je pense que c'est juste le i ++ code>.
@Thilo vrai. Bien que cela soit quelque chose que la console d'erreur aurait dû montrer.
Edit: Corrigez la réponse à cet PS: C'est ce qui se passe si vous travaillez simplement avec un IDES. P> il pourrait être fenêtre.settimeout ("x", 100) code> s> p>
fenêtre.settimeout (x, 100) code>. p>
Votre capitalisation de Settimeout code> n'est pas correcte, et
"x" code> ne fera rien.
@patrick, vous avez raison sur les deux. Cela aurait dû être cette fenêtre.Settimeout (x, 100).
il doit être x () de sorte qu'il fait référence à une fonction
cherchez-vous seinterval () code> au lieu de
Settimeout () code> par hasard?
t = window.setInterval("x()",100);
Mais cette tâche peut-elle toujours être réalisée par SetTimeOut ()? J'ai essayé une déclaration de placement dans la fonction x () et il n'a pas fonctionné.
@Shubham: Je crois que, mais je ne sais pas comment. Je sais que tu es une étape là-bas.
@Shubham oui vous pouvez le faire avec SettimeOut (), j'ai ajouté une réponse ci-dessous
ne devrait-il pas être i ++ code> à la fin de votre boucle? p>
Il existe également une erreur de syntaxe. P>
pour (i = 0; i <= document.getelementsbytagname ('img'). longueur; i ++ fort>) p>
Vous devez mettre le ... à l'intérieur de la fonction x () des crochets {} et cela fonctionne avec Settimeout () P> function x() {
for(i=0;i<=document.getElementsByTagName('img').length;i++)
document.getElementsByTagName('img')[i].width+=1;
t = window.setTimeout("x()",100);
};
x();
void(0);
Qu'est-ce que vous essayez d'accomplir? De plus, votre boucle à la fin est probablement censée être
i ++ code>.
Vous ne devriez pas faire
i <= document.getelementsbytagname ('img'). Longueur code>. Vous resélectionnez toutes les images du document autant de fois qu'il existe des images. Vous devriez mettre en cache la sélection.
var images = document.getelementsByname ('img'); Pour (var i = 0, len = images.length; i Avis également que j'ai fait
<< / code> au lieu de
<= code>.
semble un peu inutile parce que si vous n'arrêtez pas que les images de la minuterie vont grandir pour toujours.