Bonjour à tous,

Voila mon soucis : j'ai deux fichiers, IHM.js et search.js

Dans les deux fichiers j'utilise la fonction .indexOf() pour rechercher quelque choses de précis dans un tableau.

Sous IE8, cette fonction n'est pas connus, il faut donc la créé avec ceci :

[CODE]if (!Array.prototype.indexOf){
Array.prototype.indexOf = function(elt /*, from*/){
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++){
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}


Jusqu'ici, vous me direz, tous vas bien, sauf que... lorsque je rajoute la fonction ci-dessus pour créé le .indexOf(), les .indexOf() qui sont dans le fichier search.js ne fonctionnent pas alors que ceux contenus dans le fichier IHM.js, eux, fonctionnent.

Et inversement, si je commente ou supprime la fonction si dessus, les .indexOf() du fichier search.js fonctionnent et ceux de IHM.js, ne fonctionnent plus..

J'ai testé plein de façons différente, .inArray() de jQuery, des aides de nombreux sites.

Sur mon application, j'utilise : jQuery, jQuery ui, bootstrap, HTML, CSS et JavaScript

Voici les partie de code où j'utilise .indexOf() :

IHM.js :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function addOrRemoveDiv(checkbox, name){
	//si la checkbox est activé
	if (checkbox.checked){
		//on cherche si la div existe dans le tableau
		var i = DivActive.indexOf(name);
		//si elle n'existe pas
		if(i == -1){
			DivActive.push(name);
		}
	}
	else{
	//si la checkbox est décoché
		var i = DivActive.indexOf(name);
		if(i != -1){
			DivActive.splice(i, 1);
		}
	}
}
search.js :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
if(( tableSearch.indexOf(value.toLowerCase()) > -1 ) || ( database[x]['name'].toLowerCase().indexOf(value.toLowerCase()) > -1 ) || (key.search(new RegExp(value,'gi')) > -1)){
	nbrValue = Compter(tableSearch, value.toLowerCase());
	nbrKey = Compter(key, value.toLowerCase());
	nbrOccurence = nbrValue + nbrKey;
	var viewValue = key.split('_');
	resultSearch.innerHTML += '<a class="btn btn-success" style="margin-top: 3px;" href="#" onclick="openDialog(\''+viewValue[1]+'\'); document.getElementById(\'fieldSearch\').value = \'\'; searchInput(\'\');" >' + viewValue[0] + ' ' + database[x]['name'] + '</a> - <i style="font-size: 80%;">Occurence(s) for "'+value+'": <strong>'+nbrOccurence+'</strong></i><br/>';
	trouve = true;
}
search.js :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
function Compter(s, c){
	return ((p = s.toLowerCase().indexOf(c)) != -1) ? Compter(s.substr(p + 1), c) + 1 : 0 ;
}



Merci d'avance pour vos réponses