Avatar billede binderup Nybegynder
20. august 2004 - 10:12 Der er 16 kommentarer og
1 løsning

Identifikation af Windows XP Service Pack 2?

Jeg sidder med en webapplikation som kun understøtter Windows med en IE browser (ja jeg ved det godt, men det er firmaet der har valgt noget activeX halløj).

Vi har generelt ikke problemer med at folk har installeret en popup blocker, for der er det folk selv der har truffet et valg. Men med SP2 har IE jo fået en popup blocker indbygget, og det kan give nogle problemer for vores kunder.

Hvordan kan jeg via javascript (eller Coldfusion) fange om en bruger har installeret SP 2?
Avatar billede fennec Nybegynder
20. august 2004 - 10:15 #1
Kan du ikke bare lave en popup, også bagefter se om du kan få kontakt til den???
Avatar billede binderup Nybegynder
20. august 2004 - 10:18 #2
jo, men det der kunne være rart var at jeg kunne angive brugeren at han/hun kan læse mere om SP2 via et link - at jeg allerede når brugeren kommer ind på siden kan hjælpe brugeren til at sitet virker.
Avatar billede roenving Novice
20. august 2004 - 11:47 #3
Du kan sætte kaldet til popuppen ind i en try-catch-blok, og på den måde detektere, om der genereres fejl ved kaldet af popuppen:

try{
  window.open('','','');
}catch(e){
  //eventuelt kan man her undersøge fejl-typen ...
  alert('Popuppen med information om ditten og datten\nkunne ikke vises');
}
Avatar billede binderup Nybegynder
20. august 2004 - 12:08 #4
jo jeg har allerede noget der minder om det, men jeg kunne godt tænke mig at jeg kunne fange at brugeren havde SP2 installeret.
Avatar billede roenving Novice
20. august 2004 - 12:19 #5
navigator.appMinorVersion:
;SP1;Q328970;Q324929;Q810847;Q813951;Q813489;Q330994;Q820223;Q818529;Q822925;Q828750;Q824145;Q832894;Q837009;Q831167;Q823353;Q867801;

-- i min IE6sp1/XPsp1, så kan du jo sammenligne !-)
Avatar billede roenving Novice
20. august 2004 - 12:20 #6
-- og jeg glemte selvfølgelig Ekspertens manglende linje-brækning:

navigator.appMinorVersion ;SP1;Q328970;Q324929;Q810847;Q813951;Q813489;Q330994;Q820223; Q818529;Q822925;Q828750;Q824145;Q832894;Q837009;Q831167;Q823353;Q867801;
Avatar billede mik789 Nybegynder
21. august 2004 - 08:16 #7
ved I om brugere med SP2 selv kan vælge den indbyggede popupblocker fra?
Avatar billede mik789 Nybegynder
21. august 2004 - 08:28 #8
Se her:
http://msdn.microsoft.com/security/default.aspx?pull=/library/en-us/dnwxp/html/xpsp2web.asp#xpsp_topic6

Hvor der står:

You can use window.navigator.userAgent to detect if the browser connecting to your site is Internet Explorer in SP2.


var g_fIsSP2 = false;
function browserVersion()
{
  g_fIsSP2 = (window.navigator.userAgent.indexOf("SV1") != -1);
  if (g_fIsSP2)
  {
  //This browser is Internet Explorer in SP2.
  }
  else
  {
  //This browser is not Internet Explorer in SP2.
  }
}

If the user agent string contains "SV1", the browser connecting to your site is Internet Explorer in SP2.
Avatar billede binderup Nybegynder
21. august 2004 - 08:30 #9
mik: jeg var lige ved selv at poste den :-)

Men ja du kan godt slå popup blockeren fra

smid et svar så får du points
Avatar billede mik789 Nybegynder
21. august 2004 - 08:33 #10
ja, ok vi kan måske dele alle tre...
Avatar billede binderup Nybegynder
24. august 2004 - 16:53 #11
selv om points er givet så vil jeg da alligevel poste det endelige resultat

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script language="javascript1.5" type="text/javascript">

function isXpSP2()
{
  var result = (window.navigator.userAgent.indexOf("SV1") != -1);
  if (result)
  {
  //This browser is Internet Explorer in SP2.
      return true;
  }
  else
  {
  //This browser is not Internet Explorer in SP2.
    return false;
  }
}

function isXP(){
    var result = window.navigator.userAgent.indexOf("Windows NT 5.1") != -1;
   
    if (result){
        return true;
    } else {
        return false;
    }
}

function isIE(){
    var myBrowser = navigator.appName;
   
    if (myBrowser == "Microsoft Internet Explorer"){
        return true;
    } else {
        return false;
    }
}


function displaySPresult(result){
    var result;

    var td_cell = document.getElementById('popup-result');
    var div_content = document.getElementById('popup-result-div');
   
    if (result=='blocked'){
        if (isXP() && isXpSP2()){
            div_content.innerHTML = "Your pop-up blocker is enabled - please allow set it to allow pop-ups from http://127.0.0.1/";
            div_content.innerHTML += "<p>click here for a quick guide for Windows XP running Service Pack 2</p>";
            td_cell.bgColor = "#FF0000";
        } else if(isIE()){
            div_content.innerHTML = "Your pop-up blocker is enabled - please allow set it to allow pop-ups from http://127.0.0.1/";
            td_cell.bgColor = "#FF0000";
        } else {
            div_content.innerHTML = "Your pop-up blocker is enabled - please allow set it to allow pop-ups from http://127.0.0.1/";
            div_content.innerHTML += "<p>It also appears thet you are using a browser not supportet by the Aplication. Please Use Microsoft Internet Explorer.</p>";
            td_cell.bgColor = "#FF0000";
        }
    }
   
    if (result == "ok") {
        if (isIE()){
            div_content.innerHTML="Your browser is ready for http://127.0.0.1/";
            td_cell.bgColor = "#00FF00";
        } else {
            div_content.innerHTML="Your browser allows pop-ups, but in order for the Aplication to work you have to use Microsoft Internet Explorer";
            td_cell.bgColor = "#FFFF33";
        }
    }
}

function tryPopUp(){
    try {
        newwindow2=window.open('','popup','height=200,width=150');
        var tmp = newwindow2.document;
        tmp.write('<html><head><title>POP-UP test</title>');
        tmp.write('</head><body><p>This is a test to verify that you have enabled popups</p>');
        tmp.write('<p><input type="button" value="close" onClick="self.close();" </p>');
        tmp.write('</body></html>');
       
        displaySPresult('ok');
    }
    catch (e) {
        displaySPresult('blocked');
    }
}

</script>
</head>

<body onload="tryPopUp();">
<p>&nbsp;</p>
<table width="500" border="0" cellspacing="2" cellpadding="0">
  <tr valign="top">
    <td width="102">Test Result:</td>
    <td width="392" bgcolor="#FFFFFF" id="popup-result" style="padding:3px; "><div id="popup-result-div">&nbsp;</div></td>
  </tr>
</table>
<p>&nbsp;</p>
</body>
</html>
Avatar billede stuf99 Nybegynder
24. august 2005 - 13:22 #12
Jeg har behov for noget lign. Jeg har afprøvet det her tryCatch, men det lader ikke rigtig til at virke.
Jeg har lavet denne lille test
<html>
<head>
<script type="text/javascript">
function pop()
{
try{
  window.open('','','');
}catch(e){
  self.document.all.info.style.display = "";
}
}
</script>
</head>
<body onLoad="pop()" style="display:none">
<div id="info">Siden er blokeret</div>
</body>
</html>

Når jeg viser siden blokeres det tomme vindue! Fint nok, men catch'en bliver ikke aktiveret! Udfra jeres løsninger burde den blive det!?
Avatar billede roenving Novice
24. august 2005 - 13:25 #13
Prøv:

}catch(e){
  document.getElementById('info').style.display = "block";
}
Avatar billede stuf99 Nybegynder
24. august 2005 - 13:38 #14
heller ikke! Jeg har testet at koden har effekt ved at lægge den op under window.open. Når jeg tillader midlertidig "passage" så kører begge forslag godt nok! Det er som om man bremses midlertidig i koden.
Avatar billede roenving Novice
24. august 2005 - 13:49 #15
Tjah, når du skjuler body, hjælper det jo ikke meget at du forsøger at vise noget indeni !-)

<html>
<head>
<script type="text/javascript">
window.onload = function(){
  try{
    window.open('','','');
  }catch(e){
    document.getElementById('info').style.display = "block";
  }
}
</script>
</head>
<body>
<div id="info" style="display:none">Siden er blokeret</div>
</body>
</html>
Avatar billede stuf99 Nybegynder
24. august 2005 - 13:57 #16
Ups min fejl! Men ovenstående virker ikke :-( Det virker måske hos dig?
Avatar billede roenving Novice
24. august 2005 - 14:02 #17
Hrm, det ser ud til at de indbyggede popup-stoppere i Opera og FireFox går ind så tidligt, at der ikke når at blive udløst en javascript-fejl, måske virker det sådan i IE også (hvor jeg har slået den funktion fra !-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester