User Agent változtatásokkal próbálja az IE11 kikerülni a CSS hackeket?

A Neowin arra figyelt fel, hogy a Microsoft az IE11-ben változtatásokat eszközölt a böngésző által küldött User Agent string-ben. Az "MSIE"-t "IE"-re változtatta, a végére pedig felbiggyesztett egy "like Gecko"-t. A Neowin arról ír, hogy a régi Internet Explorer verziók "kedvéért" a webdizájnerek gyakran CSS hackeket használtak arra, hogy ezen böngészők számára "testreszabott" verziókat küldjenek weboldalaikból. A Neowin feltételezi, hogy a Microsoft el akarja kerülni, hogy az IE11 ezeket a régi IE verziókra "optimalizált" weboldalakat kapja.

A részletek itt.

Hozzászólások

Facepalm. Saját magát akasztja a hóhér.

"A redmondi szoftver azért folyamodik a szóban forgó cselhez, hogy így kezelje azon, egyre zavaróbbá váló és egyre súlyosabb mérteket öltő problémán, amelynek lényege, hogy számos - rosszul megírt - weblap nem működik megfelelően az IE újabb kiadásai alatt. Ennek elsődleges oka az, hogy a webes szabványokat nem ill. csak felületesen ismerő webfejlesztők az elmúlt évtized során rengeteg olyan lapot gyártottak, amelyek a Microsoft böngészőjét eltérő módon kezelik, mint konkurenseit."

nevetek.

Nem is értem, hogy miért tehették ezt a webfejlesztők. Miért diszkriminálták az IE-t?
Nem tudok másra gondolni, mint hogy ez egy kölcsönös érzés lehetett...
Hát basszus, egész eddig az IE nagy arccal vigyorogva telibe szarta a W3C szabványait és olyanokat nyilatkozott, hogy olyan mértékben valósítják meg a CSS új funkcióit, amilyen mértékben a felhasználói élmény megkívánja. Csak, hogy nincs az sehol definiálva, hogy a felhasználói élmény megkívánja ezen a CSS selector/attributum/stb létezését és nem számít semmit a másik létezése... A felhasználói élmény pontosan azt kívánná meg, hogy 100%-ig helyesen implementálva legyen, mert akkor fog jól megjelenni bármelyik weboldal.
Oszoljanak kérem, nem történt itt semmi érdekes, csak a mr MS belelépett a saját szarába.

:D
Ha csinálok egy weboldalt, azért csinálom hogy:
a.: minél többen elolvassák, a lehető legtöbb böngésző alatt jól jelenjen meg
b.: minden böngészőn helyesen jelenjen meg, de MSIE-n véletlenül se
c.: egy adott böngészőben jelenjen meg helyesen, más böngészőbe véletlenül se

Azért gyátanak böngészőt hogy:
a.: meg lehessen vele nyitni tökéletesen minden weboldalt
b.: bizonyos weboldalakat meg lehessen velük nyitni
c.: bizonyos weboldalak véletlenül se működjenek

Értelmesen gondolkodva mindkét esetben az "a" válasz a helyes.

Amúgy meg iexplorerben az iframe SCROLLING=[yes|no|auto], a firefoxban SCROLLING=[on|off|auto] volt egykor, de aztán egyformán [on|off|auto] lett. A crome meg egykor az iframe-be pakolt iframe-t nemes egyszerűséggel nem jelenítette meg. Ha lassan is, de fejlődnek a böngészők. Csak hát először érdemes lett volna valami kőbevésett szabványt létrehozni a html/css kódokra...

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

Sting hozta a formáját. :D
Persze ő Visual Studion és Word-ön kívül saját bevallása szerint sem szerkesztett soha weblapot.

Egyébként van már CSS3 IE-ben, vagy az a "rosszul megírt" ismérve? :P
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods

Get dropbox account now!

http://css3test.com

IE10: 54% Determined by passing 444 tests out of 937 total for 220 features
SeaMonkey 2.16.2: 58% Determined by passing 505 tests out of 937 total for 220 features

Ez a 4% szerintem nem olyan sok, persze nyilván kérdés hogy azokat a feature-öket támogatja-e amiket te szeretnél használni.

ez így van, inkább csak arra irányult a hozzászólásom, hogy a százalék nem feltétlen magas a legújabb böngészőknél se, de ténylegesen viszont lehet, hogy már régóta támogatott az adott feature, jó példa (példák egyike):

https://developer.mozilla.org/en-US/docs/CSS/linear-gradient

.grad {
background-color: #F07575; /* fallback color if gradients are not supported */
background-image: -webkit-linear-gradient(top, hsl(0, 80%, 70%), #bada55); /* For Chrome and Safari */
background-image: -moz-linear-gradient(top, hsl(0, 80%, 70%), #bada55); /* For old Fx (3.6 to 15) */
background-image: -ms-linear-gradient(top, hsl(0, 80%, 70%), #bada55); /* For pre-releases of IE 10*/
background-image: -o-linear-gradient(top, hsl(0, 80%, 70%), #bada55); /* For old Opera (11.1 to 12.0) */
background-image: linear-gradient(to bottom, hsl(0, 80%, 70%), #bada55); /* Standard syntax; must be last */
}

de a fenti teszten nem jelzi a supportot, révén hogy egyelőre prefixel működnek csak

Mint láthatod, az ms-nek is van saját prefixe, vagyis az ie-re ugyanúgy érvényes lehet, hogy többet tud mint amennyit a teszt kihozott. De én nem használnék éles kódban csak prefixeléssel elérhető funkciókat, szóval szerintem a teszt által kihozott érték jó összehasonlítási alap.

experimental feature != szabvany melle jaras.

A WebKit es a Gecko azert prefixeznek, mert meg gondok vannak/lehetnek ezekkel az extensionokkel, nyilvan minden kombinaciot nem tudnak letesztelni. Az MSIE viszont enkomplette kihagyja a szabvanyos cuccok implementalasat, es helyette mindenfele mast implemental. Lasd pl.: gradient vs filter.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. 

Az az eddig már jó pár éve volt. :) A trendeket nézve nem hiszem, hogy a hozzáállásuk megváltozna. Persze most is van pár terület, ahol nem követik a "szabványt" (webgl, webrtc), de jó okuk van rá (és nem az, hogy a saját megoldásukat erőltessék a világra).

Egyébként a filter-es gradient az ie5.5 óta támogatott, kb. akkor jelent meg az első css3 draft (hm, nem gondoltam volna, hogy az 1999-es). A firefox a -moz-linear-gradient-et a 3.6 óta tudja, az 2010-es. Szóval innen nézve az ie 10 évet vert rá a többiekre, csak pechére a css3 máshogy oldotta meg a problémát, mint ahogy a microsoft gondolta. (Btw a webkitben is először egy alternatív szintaxisa volt a gradientnek.)

Teljesen jó, úgy tűnik a microsoftnál se értik a dolgokat a webfejlesztők:
http://i.s-microsoft.com/home/style.cssx?k=~/shared/templates/Styles/Ba…

Ezt ide: http://www.cleancss.com/

Ilyen finomságok vannak benne:

.lt-ie9 .dropdown-menu {
opacity:0;
width:100%;
max-width:1600px;
background:#eee;
position:absolute;
left:-14px;
display:none;
border-left:none;
}

...

.lt-ie8 .dropdown-menu {
position:absolute;
zoom:1;
top:2.5em;
z-index:2000;
width:980px;
}

"Van egy teória, miszerint ha egymillió majomnak adsz egy-egy írógépet, amit elkezdenek össze-vissza véletlenszeruen püfölni, akkor elobb-utóbb megírják Shakespeare összes muvét. Az Internetnek hála, ma már tudjuk, hogy ez nem igaz.,, -

Safranka Mátyás a Microsoft véleményét ismertette, miszerint "a webes (nyílt) szabványok fontosak a kommunikáció működése szempontjából, azonban ezeket a szabványokat a Microsoft olyan mértékig kívánja támogatni, amelyet a felhasználói igények és a szoftverfejlesztői igények indokolják". Elmondta, hogy a Microsoftnak nem célja a 100% kompatibilitás, az a cél, hogy a fejlesztői platform és a felhasználók számára nyújtott funkcionalitás mindenki számára megfelelő legyen.

source: http://weblabor.hu/blog/20051002/explorervsfirefox

Ezek után kell egy arc, hogy a webfejlesztőkre mutogassanak.

"Van egy teória, miszerint ha egymillió majomnak adsz egy-egy írógépet, amit elkezdenek össze-vissza véletlenszeruen püfölni, akkor elobb-utóbb megírják Shakespeare összes muvét. Az Internetnek hála, ma már tudjuk, hogy ez nem igaz.,, -

Ennél még bonyolultabb a dolog, mert pl. a Seamonkey user-agentjébe bekerült a végére a gecko verzió szerint ekvivalens Firefox jelzése is (Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0 SeaMonkey/2.16.2)*, mivel néhány weboldal nem hitte el neki, hogy ugyan annyit tud.

*: nem tudom miért Gecko/20100101, valami bug lehet :)

Nekem ez a cikk már az elején ledobta az ékszijjat: "in the beginning"-el indít, és win3.1-es marhaságokkal... Win 3.1-el, még TCP/IP sem volt a win3.1 része, trumpet winsock-al szívtál, hogy net legyen rajt, de akkor már inkább el sem indítottad a win-t, hanem helyette bekonfoltál dos-on egy minuet-et, hátha az belefér a memoárodba... Vaaagy, ha hozzáfértél, kerestél egy unixos munkaállomást, és X11-en ténylegesen mosaic-ot használtál... (Feltéve, hogy volt valahonnan motif-od, és tudtál buildelni...)
De nem hiszem, hogy 2.0-val indult volna a mosaic verziószámozása...

Szóval, nekem elég hátulgombolósnak tűnik a szerző ahhoz, hogy elhigyjem, hogy autentikusat ír a témában.

Embertelenül pofátlan duma.

15 év után elkezdik követni a szabványokat, és a webfejlesztők végeztek szar munkát, mert ők eddig nem voltak szabványosak és ehhez igazodtak.

Csakhogy a szabványos webfejlesztők feature detectionnel dolgoznak ma már. Aki még mindig a user agentre bízza magát, az ne nevezze magát jó webfejlesztőnek.
Az egész user agent szarozásban az IE-nek semmi köze nem volt, Mosaic vs. Netscape-nél kezdődött a baj, akik akkor bevezették a user agent alapú kiszolgálást, azok a bűnösök.

Az ugye megvan, hogy az IE-1.0 úgy lett, hogy a Mosaic kódját licenszelte a Spyglass, akitől megvette az MS? Így azt állítani, hogy az IE-nek semmi köze a Mosaic vs Netscape-hez legalábbis a történelmi tények hiányára utal. Az meg már csak hab a tortán, hogy noha a renderelő kód a fenti családfa miatt erősen hajazott a Mosaicra, az IE Netscape-nek mondta magát.

Nem a user agentről beszéltem hanem az egész problémakört ahogy kommunikálta a Microsoft, kb. akkora pofátlansággal, mint amikor a 90-es évek második felében rájöttek, hogy mégsem csak egy bohóckodás az internet és a M$ weboldalán az a duma volt kiírva, hogy "Welcome to the intenet!"

Elolvastad a dumájukat?
Mindössze azt kommunikálják, hogy az egész webfejlesztés egy katyvasz volt az elmúlt sok évben, mert hülyék voltak a webfejlesztők és össze-vissza kódoltak a sokféle böngészőre, de most jöttek ők a lángpallossal és megmentik a webet, mert itt kérem szabványos lesz minden, holott ők szartak bele a palacsintába azzal, hogy a létező összes szabványt felrúgva a maguk képére akarták formálni az egész informatikát és MIATTUK alakult ki ez az egész kupleráj.

Az aluljárós gagyizósok ezekhez képest sorban állhatnának egy szentté avatásnál.

most már kidobhatnák ezt az egész user agentet a fenébe, és kitalálhatnának valamit ami az user agent feladatát látja el normálisan (értsd: a tényleges böngésző neve, verziója, a tényleges renderelő engine neve, verziója és a tényleges platform lenne benne, nem az aminek látszani akar, vagy amihez hasonlítani akar...

Mennyire lenne nehéz???

Halál mindegy, hogy mi a böngésző, az igazi kérdés az, hogy mit supportál. Arra meg a lehető legrosszabb megoldás az ha az User Agent alapján (legyen az normális vagy a mostani katyvasz) próbálunk ügyködni.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Különös tekintettel arra az esetre amikor valaki 5 év múlva akarja megnézni az oldaladat, egy most még nem is létező böngészővel. Mert nyilván az IE11-nek sem a friss ropogós up-to-date oldalakkal van gondja.

Egyébként ilyen feature mátrixot most is csinálhatsz, ugyanis az User Agent-ből most is egyértelmű melyik böngésző látogatott meg, csak az infót nem ott kell keresni ahol logikus lenne (az első helyen). Pont az a probléma, hogy a régi oldalak felismerik az új IE-t, és tolják neki a nem szabványos IE6-ra optimalizált verziót...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

en joltudom hogy kene valami mi _server_ oldalon megmondja hogy a bongeszo mit tud. mert most ez az user agent egy hasznalhatatlan valami: a bongeszo osszevissza hazudik (lasd cikk), ezert a webfejlesztok nemhasznaljak. akkor meg minek.

az apival is az a baj, hogy megha a mostani bongeszok implementalnak is egy megoldast, a regiekbol ugyanugy hianyzik?

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!