Idée :
je reprends le script de sub0 que je modifie
Dans chaque classe on implémente les méthodes selon les spécificités
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
19
20
21
22
23
24
25
26
27
28 function getNavigateur(){ var agt=navigator.userAgent.toLowerCase(); var ns4=document.layers; var nav = null; if(document.all){ if(agt.indexOf('opera')>-1) var opera=true;else var ie=true; }else if(document.getElementById){ if(agt.indexOf('netscape')>-1) var ns6=true;else if(agt.indexOf('firefox')>-1) var ffx=true;else var moz=true; } if(ns4){ nav = new Ns4(); }else if(opera){ nav = new Opera(); }else if(ie){ nav = new Iexplorer(); }else if(ns6){ nav = new Netccape(); }else if(ffx){ nav = new FireFox(); }else if(moz){ nav = new Mozilla(); }else{ alert('unknow'); } return nav; }
Ex avec un bout de code pour le navigateur ns4 (je prends un bout de Sub0 encore)
Ainsi, chaque navigateur possède cette fonction résolution ce qui permet de faire :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32 //constructeur function Ns4(){ this.nom = "NS4"; this.resolution = resolution; //etc... } function resolution() { ah = screen.availHeight; al = screen.availLeft; at = screen.availTop; aw = screen.availWidth; cd = screen.colorDepth; h = screen.height; pd = screen.pixelDepth; w = screen.width; res = 'availHeight:\t' + ah + '\n'; res = res + 'availLeft:\t' + al + '\n'; res = res + 'availTop:\t' + at + '\n'; res = res + 'availWidth:\t' + aw + '\n'; res = res + 'colorDepth:\t' + cd + '\n'; res = res + 'height:\t\t' + h + '\n'; res = res + 'pixelDepth:\t ' + pd + '\n'; res = res + 'width:\t\t' + w + '\n'; return res; }
Il faudrait même créer une classe mère "Navigateur" qui incorporerait toutes les méthodes communes (ensuite l'héritage se fait avec this.parent)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var nav = getNavigateur(); alert(nav.getResolution());
Bon, j'espère ne pas dire trop de bêtises
Partager