Skip to content

Commit 1dabbb9

Browse files
author
Dirk Ginader
committed
added new Filter for Internet Explorer 10+
this one is tested and works. the previous one didn't work
1 parent 3bd6a17 commit 1dabbb9

File tree

6 files changed

+75
-161
lines changed

6 files changed

+75
-161
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "yeti-adaptors"]
2+
path = yeti-adaptors
3+
url = https://github.com/ryanseddon/yeti-adaptors.git

index.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@
109109
display:block \9; /* Hack to specify Internet Explorers including 9 so we exclude FF, webkit, etc */
110110
}
111111

112-
/* IE 10 */
113-
@media screen and (-ms-transform-3d) {
112+
/* IE 10+ */
113+
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
114114
#ie10{
115115
display:block
116116
}
@@ -152,7 +152,7 @@
152152
<p id="ie6andie7andie8andie9">IE6, IE 7, IE 8 and IE 9</p>
153153
<p id="ie8">IE8</p>
154154
<p id="ie9">IE9+</p>
155-
<p id="ie10">IE10</p>
155+
<p id="ie10">IE10+</p>
156156
<pre>
157157
check the code to see how the CSS Hacks work or <a href="http://blog.ginader.de/archives/2009/02/01/CSS-Voodoo-The-dark-art-of-CSS-Hacks.php">Read more about the CSS Hacks used in this Demo here</a>
158158
</pre>
@@ -161,6 +161,7 @@
161161
This is for Unit testing only -->
162162

163163
<div id="qunit"></div>
164+
<script src="tests/jquery-1.8.2.min.js"></script>
164165
<script src="tests/qunit-1.10.0.js"></script>
165166
<script src="tests/tests.js"></script>
166167
</body>

readme.markdown

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,7 @@ See also
2828
* [See the DEMO Code in action](http://blog.ginader.de/dev/css/hacks/)
2929
* [Read more about the CSS Hacks used in this Demo here (english)](http://blog.ginader.de/archives/2009/02/01/CSS-Voodoo-The-dark-art-of-CSS-Hacks.php)
3030
* [Mehr Infos über die hier verwendeten Hacks (deutsch)](http://blog.ginader.de/archives/2009/02/01/CSS-Voodoo-Die-dunkle-Kunst-der-CSS-Hacks.php)
31+
32+
Testing
33+
-------
34+
automated testing across all available Browser thanks to [bunyip](https://github.com/ryanseddon/bunyip)

tests/jquery-1.8.2.min.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/tests.js

Lines changed: 61 additions & 158 deletions
Original file line numberDiff line numberDiff line change
@@ -16,132 +16,14 @@ function isVisible(id){
1616
return getStyle(document.getElementById(id), "display") == "block";
1717
}
1818

19-
var BrowserDetect = {
20-
init: function () {
21-
this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
22-
this.version = this.searchVersion(navigator.userAgent)
23-
|| this.searchVersion(navigator.appVersion)
24-
|| "an unknown version";
25-
this.OS = this.searchString(this.dataOS) || "an unknown OS";
26-
},
27-
searchString: function (data) {
28-
for (var i=0;i<data.length;i++) {
29-
var dataString = data[i].string;
30-
var dataProp = data[i].prop;
31-
this.versionSearchString = data[i].versionSearch || data[i].identity;
32-
if (dataString) {
33-
if (dataString.indexOf(data[i].subString) != -1)
34-
return data[i].identity;
35-
}
36-
else if (dataProp)
37-
return data[i].identity;
38-
}
39-
},
40-
searchVersion: function (dataString) {
41-
var index = dataString.indexOf(this.versionSearchString);
42-
if (index == -1) return;
43-
return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
44-
},
45-
dataBrowser: [
46-
{
47-
string: navigator.userAgent,
48-
subString: "Chrome",
49-
identity: "Chrome"
50-
},
51-
{ string: navigator.userAgent,
52-
subString: "OmniWeb",
53-
versionSearch: "OmniWeb/",
54-
identity: "OmniWeb"
55-
},
56-
{
57-
string: navigator.vendor,
58-
subString: "Apple",
59-
identity: "Safari",
60-
versionSearch: "Version"
61-
},
62-
{
63-
prop: window.opera,
64-
identity: "Opera",
65-
versionSearch: "Version"
66-
},
67-
{
68-
string: navigator.vendor,
69-
subString: "iCab",
70-
identity: "iCab"
71-
},
72-
{
73-
string: navigator.vendor,
74-
subString: "KDE",
75-
identity: "Konqueror"
76-
},
77-
{
78-
string: navigator.userAgent,
79-
subString: "Firefox",
80-
identity: "Firefox"
81-
},
82-
{
83-
string: navigator.vendor,
84-
subString: "Camino",
85-
identity: "Camino"
86-
},
87-
{ // for newer Netscapes (6+)
88-
string: navigator.userAgent,
89-
subString: "Netscape",
90-
identity: "Netscape"
91-
},
92-
{
93-
string: navigator.userAgent,
94-
subString: "MSIE",
95-
identity: "Explorer",
96-
versionSearch: "MSIE"
97-
},
98-
{
99-
string: navigator.userAgent,
100-
subString: "Gecko",
101-
identity: "Mozilla",
102-
versionSearch: "rv"
103-
},
104-
{ // for older Netscapes (4-)
105-
string: navigator.userAgent,
106-
subString: "Mozilla",
107-
identity: "Netscape",
108-
versionSearch: "Mozilla"
109-
}
110-
],
111-
dataOS : [
112-
{
113-
string: navigator.platform,
114-
subString: "Win",
115-
identity: "Windows"
116-
},
117-
{
118-
string: navigator.platform,
119-
subString: "Mac",
120-
identity: "Mac"
121-
},
122-
{
123-
string: navigator.userAgent,
124-
subString: "iPhone",
125-
identity: "iPhone/iPod"
126-
},
127-
{
128-
string: navigator.platform,
129-
subString: "Linux",
130-
identity: "Linux"
131-
}
132-
]
19+
var ua = $.browser;
20+
var uav = parseInt(ua.version,10);
13321

134-
};
135-
BrowserDetect.init();
136-
137-
//console.log(BrowserDetect.browser.toLowerCase());
138-
//console.log(BrowserDetect.version);
139-
140-
if( BrowserDetect.browser.toLowerCase() == 'chrome' || BrowserDetect.browser.toLowerCase() == 'safari'){
141-
test( "webkit", function() {
142-
ok( !isVisible("opera") );
143-
ok( !isVisible("opera2") );
144-
ok( isVisible("webkit") );
22+
if( $.browser.opera ){
23+
test( "opera", function() {
24+
ok( isVisible("opera") );
25+
ok( isVisible("opera2") );
26+
ok( !isVisible("webkit") );
14527
ok( !isVisible("firefox2") );
14628
ok( !isVisible("firefox3") );
14729
ok( !isVisible("firefox3_5") );
@@ -156,12 +38,12 @@ if( BrowserDetect.browser.toLowerCase() == 'chrome' || BrowserDetect.browser.toL
15638
ok( !isVisible("ie10") );
15739
});
15840
}
159-
if( BrowserDetect.browser.toLowerCase() == 'firefox' && BrowserDetect.version == 2){
160-
test( "firefox 2", function() {
41+
if( $.browser.webkit ){
42+
test( "webkit", function() {
16143
ok( !isVisible("opera") );
16244
ok( !isVisible("opera2") );
163-
ok( !isVisible("webkit") );
164-
ok( isVisible("firefox2") );
45+
ok( isVisible("webkit") );
46+
ok( !isVisible("firefox2") );
16547
ok( !isVisible("firefox3") );
16648
ok( !isVisible("firefox3_5") );
16749
ok( !isVisible("firefox3_6") );
@@ -175,7 +57,27 @@ if( BrowserDetect.browser.toLowerCase() == 'firefox' && BrowserDetect.version ==
17557
ok( !isVisible("ie10") );
17658
});
17759
}
178-
if( BrowserDetect.browser.toLowerCase() == 'firefox' && BrowserDetect.version == 3){
60+
// Browserstack doen't have that version
61+
// if ( ua.mozilla && ua.version.slice(0,3) == "1.9.2.17" ) {
62+
// test( "firefox 2", function() {
63+
// ok( !isVisible("opera") );
64+
// ok( !isVisible("opera2") );
65+
// ok( !isVisible("webkit") );
66+
// ok( isVisible("firefox2") );
67+
// ok( !isVisible("firefox3") );
68+
// ok( !isVisible("firefox3_5") );
69+
// ok( !isVisible("firefox3_6") );
70+
// ok( !isVisible("firefox4") );
71+
// ok( !isVisible("ie6") );
72+
// ok( !isVisible("ie7") );
73+
// ok( !isVisible("ie6andie7") );
74+
// ok( !isVisible("ie6andie7andie8andie9") );
75+
// ok( !isVisible("ie8") );
76+
// ok( !isVisible("ie9") );
77+
// ok( !isVisible("ie10") );
78+
// });
79+
// }
80+
if ( ua.mozilla && ua.version.slice(0,5) == "1.9.0" ) {
17981
test( "firefox 3", function() {
18082
ok( !isVisible("opera") );
18183
ok( !isVisible("opera2") );
@@ -194,26 +96,27 @@ if( BrowserDetect.browser.toLowerCase() == 'firefox' && BrowserDetect.version ==
19496
ok( !isVisible("ie10") );
19597
});
19698
}
197-
if( BrowserDetect.browser.toLowerCase() == 'firefox' && BrowserDetect.version == 3.5){
198-
test( "firefox 3.5", function() {
199-
ok( !isVisible("opera") );
200-
ok( !isVisible("opera2") );
201-
ok( !isVisible("webkit") );
202-
ok( isVisible("firefox2") );
203-
ok( isVisible("firefox3") );
204-
ok( isVisible("firefox3_5") );
205-
ok( !isVisible("firefox3_6") );
206-
ok( !isVisible("firefox4") );
207-
ok( !isVisible("ie6") );
208-
ok( !isVisible("ie7") );
209-
ok( !isVisible("ie6andie7") );
210-
ok( !isVisible("ie6andie7andie8andie9") );
211-
ok( !isVisible("ie8") );
212-
ok( !isVisible("ie9") );
213-
ok( !isVisible("ie10") );
214-
});
215-
}
216-
if( BrowserDetect.browser.toLowerCase() == 'firefox' && BrowserDetect.version == 3.6){
99+
// Browserstack doen't have that version
100+
// if( BrowserDetect.browser.toLowerCase() == 'firefox' && BrowserDetect.version == 3.5){
101+
// test( "firefox 3.5", function() {
102+
// ok( !isVisible("opera") );
103+
// ok( !isVisible("opera2") );
104+
// ok( !isVisible("webkit") );
105+
// ok( isVisible("firefox2") );
106+
// ok( isVisible("firefox3") );
107+
// ok( isVisible("firefox3_5") );
108+
// ok( !isVisible("firefox3_6") );
109+
// ok( !isVisible("firefox4") );
110+
// ok( !isVisible("ie6") );
111+
// ok( !isVisible("ie7") );
112+
// ok( !isVisible("ie6andie7") );
113+
// ok( !isVisible("ie6andie7andie8andie9") );
114+
// ok( !isVisible("ie8") );
115+
// ok( !isVisible("ie9") );
116+
// ok( !isVisible("ie10") );
117+
// });
118+
// }
119+
if ( ua.mozilla && ua.version.slice(0,5) == "1.9.2" ) {
217120
test( "firefox 3.6", function() {
218121
ok( !isVisible("opera") );
219122
ok( !isVisible("opera2") );
@@ -232,7 +135,7 @@ if( BrowserDetect.browser.toLowerCase() == 'firefox' && BrowserDetect.version ==
232135
ok( !isVisible("ie10") );
233136
});
234137
}
235-
if( BrowserDetect.browser.toLowerCase() == 'firefox' && BrowserDetect.version >= 4){
138+
if ( ua.mozilla && ua.version.slice(0,3) == "2.0" ) {
236139
test( "firefox 4+", function() {
237140
ok( !isVisible("opera") );
238141
ok( !isVisible("opera2") );
@@ -251,7 +154,7 @@ if( BrowserDetect.browser.toLowerCase() == 'firefox' && BrowserDetect.version >=
251154
ok( !isVisible("ie10") );
252155
});
253156
}
254-
if( BrowserDetect.browser.toLowerCase() == 'explorer' && BrowserDetect.version == 6){
157+
if ( ua.msie && ua.version == "6.0" ) {
255158
test( "Internet Explorer 6", function() {
256159
ok( !isVisible("opera") );
257160
ok( !isVisible("opera2") );
@@ -270,7 +173,7 @@ if( BrowserDetect.browser.toLowerCase() == 'explorer' && BrowserDetect.version =
270173
ok( !isVisible("ie10") );
271174
});
272175
}
273-
if( BrowserDetect.browser.toLowerCase() == 'explorer' && BrowserDetect.version == 7){
176+
if ( ua.msie && ua.version == "7.0" ) {
274177
test( "Internet Explorer 7", function() {
275178
ok( !isVisible("opera") );
276179
ok( !isVisible("opera2") );
@@ -289,7 +192,7 @@ if( BrowserDetect.browser.toLowerCase() == 'explorer' && BrowserDetect.version =
289192
ok( !isVisible("ie10") );
290193
});
291194
}
292-
if( BrowserDetect.browser.toLowerCase() == 'explorer' && BrowserDetect.version == 8){
195+
if ( ua.msie && ua.version == "8.0" ) {
293196
test( "Internet Explorer 8", function() {
294197
ok( !isVisible("opera") );
295198
ok( !isVisible("opera2") );
@@ -308,7 +211,7 @@ if( BrowserDetect.browser.toLowerCase() == 'explorer' && BrowserDetect.version =
308211
ok( !isVisible("ie10") );
309212
});
310213
}
311-
if( BrowserDetect.browser.toLowerCase() == 'explorer' && BrowserDetect.version == 9){
214+
if ( ua.msie && ua.version == "9.0" ) {
312215
test( "Internet Explorer 9", function() {
313216
ok( !isVisible("opera") );
314217
ok( !isVisible("opera2") );
@@ -327,7 +230,7 @@ if( BrowserDetect.browser.toLowerCase() == 'explorer' && BrowserDetect.version =
327230
ok( !isVisible("ie10") );
328231
});
329232
}
330-
if( BrowserDetect.browser.toLowerCase() == 'explorer' && BrowserDetect.version == 10){
233+
if ( ua.msie && ua.version == "10.0" ) {
331234
test( "Internet Explorer 10", function() {
332235
ok( !isVisible("opera") );
333236
ok( !isVisible("opera2") );
@@ -340,9 +243,9 @@ if( BrowserDetect.browser.toLowerCase() == 'explorer' && BrowserDetect.version =
340243
ok( !isVisible("ie6") );
341244
ok( !isVisible("ie7") );
342245
ok( !isVisible("ie6andie7") );
343-
ok( !isVisible("ie6andie7andie8andie9") );
246+
ok( isVisible("ie6andie7andie8andie9") );
344247
ok( !isVisible("ie8") );
345-
ok( !isVisible("ie9") );
248+
ok( isVisible("ie9") );
346249
ok( isVisible("ie10") );
347250
});
348251
}

yeti-adaptors

Submodule yeti-adaptors added at 341073a

0 commit comments

Comments
 (0)