Avatar billede bodyguard Nybegynder
22. juli 2011 - 18:07 Der er 15 kommentarer og
1 løsning

Tilføjelser i Browser-Check.js

Hej Eksperter,

Jeg har et script som jeg bruger til at definere hvilket stylesheet som skal inkluderes ud fra brugerens Browser type.

1) Jeg vil gerne have tilføjet Google Chrome!
2) Jeg vil gerne have tilføjet en default css i tilfælde af at browseren ikke er listet i scriptet.


Håber I kan hjælpe?
============================================================

Browser-Check.js
*****************
var BrowserDetect = {
    init: function () {
   
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
            || this.searchVersion(navigator.appVersion)
            || "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++)    {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    },
    dataBrowser: [
        {
            string: navigator.userAgent,
            subString: "Firefox",
            identity: "Firefox"
        },
        {
            string: navigator.userAgent,
            subString: "MSIE",
            identity: "Explorer",
            versionSearch: "MSIE"
        },
        {
            string: navigator.vendor,
            subString: "Apple",
            identity: "Safari"
        },
    ],
    dataOS : [
        {
            string: navigator.platform,
            subString: "Win",
            identity: "Windows"
        },
        {
            string: navigator.platform,
            subString: "Mac",
            identity: "Mac"
        },
        {
            string: navigator.platform,
            subString: "Linux",
            identity: "Linux"
        }
    ]

};


function SetBrowserStylesheet(){

if (BrowserDetect.browser == 'Firefox') {
document.write('<link rel="stylesheet" type="text/css" href="/css/rg_firefox.css" />')
}
if (BrowserDetect.browser == 'Explorer' && BrowserDetect.version == '6') {
document.write('<link rel="stylesheet" type="text/css" href="/css/rg_ie6.css" />')
}

if (BrowserDetect.browser == 'Explorer' && BrowserDetect.version == '7') {
document.write('<link rel="stylesheet" type="text/css" href="/css/rg_ie7.css" />')
}
if (BrowserDetect.browser == 'Safari') {
document.write('<link rel="stylesheet" type="text/css" href="/css/rg_safari.css" />')
}
}
Avatar billede bodyguard Nybegynder
22. juli 2011 - 18:15 #1
Der var jeg nok lige for hurtig med spørgsmål 1:
{
            string: navigator.userAgent,
            subString: "Chrome",
            identity: "Chrome"
        },
...google er min ven :)

Men mangler stadigt en default style funktion :)
Avatar billede majbom Novice
22. juli 2011 - 19:10 #2
huks at lukke spørgsmålet :)
Avatar billede bodyguard Nybegynder
22. juli 2011 - 19:48 #3
splazz> Ja selvfølgelig men mangler stadigt et svar på hvordan jeg angiver et default stylesheet...
Avatar billede majbom Novice
22. juli 2011 - 20:16 #4
ah, sorry - det havde jeg ikke set.

hvad med en else?
Avatar billede bodyguard Nybegynder
22. juli 2011 - 20:23 #5
Np, det lyder som en god idé men jeg er ikke ferm i JavaScript så har brug for hele kode stumpen samt anvisning om hvor den skal indsættes... Sorry :)
Avatar billede majbom Novice
22. juli 2011 - 23:25 #6
function SetBrowserStylesheet(){

if (BrowserDetect.browser == 'Firefox') {
document.write('<link rel="stylesheet" type="text/css" href="/css/rg_firefox.css" />')
}
elseif (BrowserDetect.browser == 'Explorer' && BrowserDetect.version == '6') {
document.write('<link rel="stylesheet" type="text/css" href="/css/rg_ie6.css" />')
}

elseif (BrowserDetect.browser == 'Explorer' && BrowserDetect.version == '7') {
document.write('<link rel="stylesheet" type="text/css" href="/css/rg_ie7.css" />')
}

elseif (BrowserDetect.browser == 'Safari') {
document.write('<link rel="stylesheet" type="text/css" href="/css/rg_safari.css" />')
}

else {
document.write('<link rel="stylesheet" type="text/css" href="/css/rg_default.css" />')
}
}
Avatar billede olsensweb.dk Ekspert
22. juli 2011 - 23:35 #7
er det bare mig eller skriger functionen SetBrowserStylesheet ikke på en switch istedet jeg ville lave den sådan: (utested)
function SetBrowserStylesheet(){
    switch(BrowserDetect.browser){
        case 'Firefox':
            document.write('<link rel="stylesheet" type="text/css" href="/css/rg_firefox.css" />');
        break;
        case 'Explorer':           
            switch(BrowserDetect.version){
                case '6':
                    document.write('<link rel="stylesheet" type="text/css" href="/css/rg_ie6.css" />');
                break;
                case '7':
                    document.write('<link rel="stylesheet" type="text/css" href="/css/rg_ie7.css" />');
                break;
                default:
                    document.write('<link rel="stylesheet" type="text/css" href="/css/rg_ie.css" />');
                break;

            }
        break;
        case 'Safari':
            document.write('<link rel="stylesheet" type="text/css" href="/css/rg_safari.css" />');
        break;
        case 'Chrome':
            document.write('<link rel="stylesheet" type="text/css" href="/css/rg_chrome.css" />');
        break;
        default:
            document.write('<link rel="stylesheet" type="text/css" href="/css/rg_unknown.css" />');
        break;

    }
}
Avatar billede bodyguard Nybegynder
23. juli 2011 - 05:25 #8
Puha jeg er i tvivl om hvilken løsning er den bedste... Jeg prøver lige at teste dem i løbet af den kommende uge :)
Avatar billede majbom Novice
23. juli 2011 - 07:24 #9
-> ronols - jo, det er selvfølgelig den bedste (og mest overskuelige) måde at gøre det på - jeg var vist lidt træt i går :)
Avatar billede Slettet bruger
24. juli 2011 - 11:22 #10
Istedet for at bikse med at få din side til at virke i 10 år gamle browsere..
- sku' du hellere skælde brugerne ud (og nægte dem adgang):

Din browser er forældet. Den er farlig at bruge. Risikoen er ikke teoretisk.
- Og så gi' dem en stribe (dybe) links, hvor tumperne kan downloade en frisk.

Det andet dér, svarer til at give gode råd om rebtykkelse og styrke, til et barn der vil hænge sig selv!

Når du på den måde har sikret dig at dine brugere er up-to-date, kan du nøjes med ét stylesheet : )
Avatar billede olsensweb.dk Ekspert
24. juli 2011 - 11:51 #11
sad selv og tænkte på det sammen hvor nødvendgt er det at teste for IE6 ??, under 1% af danske brugere har det, men hvis man laver en international side, med et marked i kina, ja så er man nød til det.
http://www.ie6countdown.com/#list
Denmark         0.9%

http://www.fdim.dk/statistik/teknik/browserbarometer
11     MSIE 6.X    0,725     -0,160
2     MSIE 7.X     18,080     -0,794
1     MSIE 8.X     33,875     -5,669
4     MSIE 9.X     10,446     5,756

men IE7 har bestemt også sine særheder, men alt andet lige jo mere MS forstår ordet standart på sammen måde som andre jo bedre, så er man fri for alt det hack.

>Når du på den måde har sikret dig at dine brugere er up-to-date, kan du nøjes med ét stylesheet : )
det ville være optimalt, men ikke alle har et opdateret styrer system, og kan få nyeste browser, og nogle virksomheder's intranet og speciale app er lavet til en bestemt vertion, og man vil ikke bruge resurcer på at opdaterer.

http://www.fdim.dk/Statistik/teknik/operativsystemer
2     Windows XP  28,328     -0,442
Avatar billede Slettet bruger
24. juli 2011 - 12:05 #12
"nogle virksomheder's intranet og speciale app er lavet til en bestemt vertion, og man vil ikke bruge resurcer på at opdaterer."

Så må medarbejderne bare ha' 2 browsere - iE7 til det gamle lort, og så en moderne til det sjove.

Det er jo ikke bare CSS'en der skal fifles med - for at få skidtet til at virke.
Typisk ender den slags "nedgradering" med nedsatte ambitioner over hele linjen - synd og skam.
- så hellere afvise et par procent gamle stivstikkere : )

Ugh!
Avatar billede olsensweb.dk Ekspert
24. juli 2011 - 17:29 #13
"Så må medarbejderne bare ha' 2 browsere - iE7 til det gamle lort, og så en moderne til det sjove."
det kan du ikke forvendte en lager arbejder eller køkken medhjælper kan finde ud af.


"Det er jo ikke bare CSS'en der skal fifles med - for at få skidtet til at virke."
nej der er også en del code, men desværre er der mange nybegyndere der anvender gamle tut's fra feks html.dk (sidst opdateret 2001), baserer nogle ting på activeX (kun understøttet af IE).
det var ikke for sjov IE var nød til at lave en "compability mode" det var erkendelse af de ændret forståelse af ordet standad med ny vertion af IE.

men det vi som programmøre kan sikre er at de side vi laver overholder standarten jf w3.org
http://validator.w3.org/
http://jigsaw.w3.org/css-validator/


"Ugh! "
ja det er skrammende så mange der stadig beholder XP.
for private:
kan det være licenserne der gør det
dovenskab

for virksomheder:
kan det være ønske om alle maskiner er ens (styresystem + office pakke), afh. support, opgradering (koster tid og licenser)
opgradering skal være gennem tested og valideret (koster tid), programmer der fejler skal opgraderes (koster tid og evt nye licens)
uddannelse af medarbejdere (mindre produktivitet i en periode, til folk har lært det nye at kende, og større belastning af supporten).
Avatar billede Slettet bruger
24. juli 2011 - 21:26 #14
Er du ikke lidt hård ved lager- og køkkenmedarbejderne : )

XP kan da sagtens køre både Chrome, Firefox, Opera og Safari ?
Og alle fire er gratis - så licensargumentet dur heller ikke.

Ensretningen (alle SKAL køre iE7) er bare dumt - jeg ved det eksisterer, det er ikke dig jeg mener.
- men netop dér vil en afvisning/udelukkelse give de stakkels medarbejdere en (lille) trumf..
Avatar billede bodyguard Nybegynder
08. september 2011 - 14:50 #15
Hej Ronols,

Ved godt at det er sent, men kom med et svar :)

Tusinde tak for hjælpen!
Avatar billede olsensweb.dk Ekspert
08. september 2011 - 18:11 #16
får du så her
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