Détection capacité AJAX sous IE

Détection capacité AJAX sous IE - HTML/CSS - Programmation

Marsh Posté le 03-11-2007 à 10:01:49    

Voila, mon problème n'est pas tres compliqué à expliquer.
 
J'utilise de l'ajax pour transférer les données d'un formulaire vers un serveur. Mon soucis est, comme il s'agit d'un site internet, que parfois les navigateurs utilisés sont IE mais avec les activex disont desactivés (un comble !).
 
Et dans ce cas bien sur l'ajax est impossible.
 
Ma question est comme puis je tester cela pour modifier le comportement de ma page dans un tel cas.


---------------
L'informatique ça évolue très vite ou pas.
Reply

Marsh Posté le 03-11-2007 à 10:01:49   

Reply

Marsh Posté le 03-11-2007 à 10:36:11    

Désactive javascript, par exemple en mettant le niveau de sécurité sur le plus haut dans les options Internet

Reply

Marsh Posté le 03-11-2007 à 10:50:30    

ca je sais le faire. Ce que je ne sais pas faire c'est le tester via du code javascript.  
 
Par exemple si jamais je suis sous IE et sans les activex alors je ne veux pas afficher mon formulaire.


---------------
L'informatique ça évolue très vite ou pas.
Reply

Marsh Posté le 03-11-2007 à 10:57:16    

Donc il faut une solution alternative qui fonctionne sans JavaScript.

Reply

Marsh Posté le 03-11-2007 à 11:27:20    

je cherche a detecter le cas Avec Javascript mais sans activeX


---------------
L'informatique ça évolue très vite ou pas.
Reply

Marsh Posté le 03-11-2007 à 12:08:32    

Comment testes-tu que le user-agent est "Ajax enabled"?
 
"Par exemple si jamais je suis sous IE et sans les activex alors je ne veux pas afficher mon formulaire."
 
Es-tu conscient que cela risque de fortement pénaliser l'accessibilté de ton site? Pour une application interne, rendre obligatorie la présence de javascript, activex et co peut être acceptable. Sur internet, sans doute nettement moins.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 03-11-2007 à 14:22:50    

Code :
  1. function testActiveXxmlHTTP() {
  2.  try {
  3.   xmlhttp = new ActiveXObject("Msxml2.XMLHTTP" );
  4.  }
  5.  catch (e) {
  6.   try {
  7.      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP" );
  8.   }
  9.   catch (E) {
  10.      xmlhttp = false;
  11.   }
  12.  }
  13.   return !!xmlhttp;
  14. }
  15. //test
  16. window.onload = function() {
  17.  var result = testActiveXxmlHTTP();
  18.  alert(result);
  19. };


utilise le systeme classique pour récupérer un objet XMLHttp pour IE.
Si l'objet existe on retourne un booleen (donc true) dans le cas contraire on retourne false.
 
Ensuite la technique au niveau serveur consisterai à changer le comportement de tes pages, et au lieu de faire de l'ajax, tes pages se comportent de maniere naturelle.
 
J'aurai tendance à mettre des urls sur les liens clicables et quand ces urls ne doivent que retourner un truc en Ajax, je rajouterai dans ce cas un parametre : url+'?ajax=1'

Reply

Marsh Posté le 03-11-2007 à 16:28:43    

je vais essayé ca je vous tiens au courant


---------------
L'informatique ça évolue très vite ou pas.
Reply

Marsh Posté le 13-11-2007 à 18:38:12    

Ca marche j'ai juste rajouter la détection du navigateur. Je sais c'est pas parfait mais ca me suffit.
 

Code :
  1. if (navigator.appName == 'Microsoft Internet Explorer') {
  2.  try {
  3.   xmlhttp = new ActiveXObject("Msxml2.XMLHTTP" );
  4.  }
  5.  catch (e) {
  6.   try {
  7.    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP" );
  8.    }
  9.   catch (E) {
  10.   xmlhttp = false;
  11.   }
  12.  }
  13.  return !!xmlhttp;
  14. }
  15. if (navigator.appName == "Netscape" ) {
  16.  return true;
  17. }
  18. return false;


 


---------------
L'informatique ça évolue très vite ou pas.
Reply

Marsh Posté le 14-11-2007 à 10:51:02    

OdbO a écrit :

Ca marche j'ai juste rajouter é la détection du navigateur.


Oh no [:sisicaivrai]

OdbO a écrit :

Je sais c'est pas parfait mais ca me suffit.


Ah oui, si tu conçois ton site pour toi tout seul, ça le fait. [:itm]
 
Par contre, si le but est de permettre à un maximum de monde d'y accéder, c'est clairement moins bien engagé. :spamafote:


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed