J'essaie de comparer 2 images pour voir si elles sont identiques. J'ai fait pas mal de recherches à ce sujet et je n'arrive pas à une conclusion utile. Voici un exemple de ce que j'ai maintenant:Comparer les sources de 2 images en Javascript
var image1 = document.getElementById('imgId1');
var image2 = document.getElementById('imgId2');
if(image1.src.match(image2.src)) { <---This seems to only work w/ a string
//do whatever here
}
J'ai aussi essayé d'autres choses telles que:
if(image2.src.indexOf(image1.src)!= -1)
{
//do whatever here
}
et
if(image2.src == image1.src)
{
}
et
if(image2.src === image1.src)
{
}
J'ai essayé d'utiliser des guillemets simples, des guillemets doubles, n o citations .. Je n'ai pas suivi de cours de Javascript avant donc ce genre de comparaison est nouveau pour moi. Toute aide serait géniale, merci.
CODE COMPLET -
<script language="javascript">
function changeImage1() {
var num = Math.floor((Math.random() * 48) + 1);
var n = num.toString();
var numImg = n.concat(".jpeg");
var string = "/blah/blah/"
var final = string.concat(numImg);
var image = document.getElementById('imgClickAndChange1');
var image2 = document.getElementById('imgClickAndChange2');
if(image.src.match("blah.jpg")) {
var num2 = Math.floor((Math.random() * 48) + 1);
var n2 = num2.toString();
var numImg2 = n2.concat(".jpeg");
var final2 = string.concat(numImg2);
image2.src = final2;
image.src = final;
if(image2.src == image.src){
num2 = Math.floor((Math.random() * 48) + 1);
n2 = num2.toString();
numImg2 = n2.concat(".jpeg");
final2 = string.concat(numImg2);
image2.src = final2;
}
} else {
image.src = final;
if(image.src == image2.src){
num = Math.floor((Math.random() * 48) + 1);
n = num.toString();
numImg = n.concat(".jpeg");
final = string.concat(numImg);
image.src = final;
}
}
}
Je me rends compte qu'il ya encore une petite chance les images seront les mêmes après la 2ème rand. - Le script mettra toujours les images comme identiques dans la première passe
Si elles ne correspondent pas en utilisant '==', elles ne correspondent pas. Avez-vous enregistré les deux valeurs de '.src' sur la console pour voir ce qu'elles sont réellement? Que commencent les sources dans le HTML? –
Y at-il un problème avec l'une des tentatives que vous avez essayé? Pas tout à fait sûr de votre question. '===' est le moyen de tester les valeurs primitives pour l'égalité. Si vous n'êtes pas très familier avec JavaScript, pourquoi ne pas lire un tutoriel? http://eloquentjavascript.net/ * "J'ai essayé d'utiliser des guillemets simples, des guillemets, des guillemets." * Les guillemets indiquent une chaîne de caractères pour le * parser *. Ils ne font pas partie de la valeur, donc peu importe celui que vous utilisez. –
@squint @FelixKling --- L'utilisation de ceci est de s'assurer que 2 des mêmes images n'apparaissent pas en même temps. Si elles sont identiques, on changera pour une image différente. Je sais que ça ne marche pas parce que 2 images apparaîtront toujours et seront les mêmes. Les sources dans le HTML commencent comme ça: '' – LearningProcess