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 :
search.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; }
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![]()
Partager