1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| // Récupère le contenu de l'entrée (champs texte) éditable ainsi que les différents éléments de la liste (en fonction du navigateur).
// Puis la fonction récupère le premier mot dit 'utile' dans l'expression entrée par l'utilisateur.
// La fonction compare ce mot avec les éléments de la liste, si c'est existant, l'élément en question sera renvoyé.
// Sinon, la recherche des éléments intégrant la chaîne de caractère est lancée, puis retourne tous les éléments en rapport avec l'expression.
function checkDeviceName() {
var expression = $("#device_choice").val().toLowerCase();
var j=0, i=0, n=0;
var word = '';
var tab = new Array();
var tab2 = new Array();
var tab3 = new Array();
var browser = get_browser();
var version = get_browser_version();
if(browser == "MSIE" && version < 10) {
var liste = document.getElementById("device_ie").innerHTML.toLowerCase();
tab = multisplit(liste,['/option>','<option value=','<','>'])
}
else {
var liste = document.getElementById("device").innerHTML.toLowerCase();
tab = liste.split('"');
}
var exist = liste.indexOf(expression);
if(exist == -1) {
var tab_exp = expression.split('*');
while(word == '') {
if(tab_exp[n] != '') {
word = tab_exp[n];
}
n++;
}
for(i=0; i<tab.length; i++) {
if(tab[i].indexOf(word) != -1) {
tab2[j] = tab[i];
j++;
}
}
j=0;
for(i=0; i<tab2.length; i++) {
if((i%2)==0) {
tab3[j] = tab2[i];
j++;
}
}
document.getElementById("device_choice").value = tab3;
}
}
//Renvoie le nom du navigateur
function get_browser() {
var ua=navigator.userAgent,tem,M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
if(/trident/i.test(M[1])){
tem=/\brv[ :]+(\d+)/g.exec(ua) || [];
return 'IE '+(tem[1]||'');
}
if(M[1]==='Chrome'){
tem=ua.match(/\bOPR\/(\d+)/)
if(tem!=null) {return 'Opera '+tem[1];}
}
M=M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
if((tem=ua.match(/version\/(\d+)/i))!=null) {M.splice(1,1,tem[1]);}
return M[0];
}
// Renvoie la version du navigateur
function get_browser_version() {
var ua=navigator.userAgent,tem,M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
if(/trident/i.test(M[1])){
tem=/\brv[ :]+(\d+)/g.exec(ua) || [];
return 'IE '+(tem[1]||'');
}
if(M[1]==='Chrome'){
tem=ua.match(/\bOPR\/(\d+)/)
if(tem!=null) {return 'Opera '+tem[1];}
}
M=M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
if((tem=ua.match(/version\/(\d+)/i))!=null) {M.splice(1,1,tem[1]);}
return M[1];
}
// Renvoie un tableau des éléments récupérés suite au 'split' de la chaine d'entrée avec tous les délimiteurs renseignés en entrée
function multisplit(str,delimeters) {
var result = [str];
if (typeof(delimeters) == 'string')
delimeters = [delimeters];
while(delimeters.length>0){
for(var i = 0;i<result.length;i++){
var tempSplit = result[i].split(delimeters[0]);
result = result.slice(0,i).concat(tempSplit).concat(result.slice(i+1));
}
delimeters.shift();
}
return result;
} |
Partager