|
1 /* |
|
2 The code in this file is adapted from the original |
|
3 Library Detector add-on |
|
4 (https://addons.mozilla.org/en-US/firefox/addon/library-detector/) written by |
|
5 Paul Bakaus (http://paulbakaus.com/) and made available under the |
|
6 MIT License (http://www.opensource.org/licenses/mit-license.php). |
|
7 */ |
|
8 |
|
9 var LD_tests = { |
|
10 |
|
11 'jQuery': { |
|
12 test: function(win) { |
|
13 var jq = win.jQuery || win.$ || win.$jq || win.$j; |
|
14 if(jq && jq.fn && jq.fn.jquery) { |
|
15 return { version: jq.fn.jquery }; |
|
16 } else { |
|
17 return false; |
|
18 } |
|
19 } |
|
20 }, |
|
21 |
|
22 'jQuery UI': { |
|
23 //phonehome: 'http://jqueryui.com/phone_home', |
|
24 test: function(win) { |
|
25 |
|
26 var jq = win.jQuery || win.$ || win.$jq || win.$j; |
|
27 if(jq && jq.fn && jq.fn.jquery && jq.ui) { |
|
28 |
|
29 var plugins = 'accordion,datepicker,dialog,draggable,droppable,progressbar,resizable,selectable,slider,menu,grid,tabs'.split(','), concat = []; |
|
30 for (var i=0; i < plugins.length; i++) { if(jq.ui[plugins[i]]) concat.push(plugins[i].substr(0,1).toUpperCase() + plugins[i].substr(1)); }; |
|
31 |
|
32 return { version: jq.ui.version, details: concat.length ? 'Plugins used: '+concat.join(',') : '' }; |
|
33 } else { |
|
34 return false; |
|
35 } |
|
36 |
|
37 } |
|
38 }, |
|
39 |
|
40 'MooTools': { |
|
41 test: function(win) { |
|
42 if(win.MooTools && win.MooTools.version) { |
|
43 return { version: win.MooTools.version }; |
|
44 } else { |
|
45 return false; |
|
46 } |
|
47 } |
|
48 }, |
|
49 |
|
50 'YUI': { |
|
51 test: function(win) { |
|
52 if(win.YAHOO && win.YAHOO.VERSION) { |
|
53 return { version: win.YAHOO.VERSION }; |
|
54 } else { |
|
55 return false; |
|
56 } |
|
57 } |
|
58 }, |
|
59 |
|
60 'Closure': { |
|
61 test: function(win) { |
|
62 if(win.goog) { |
|
63 return { version: '2.0' }; |
|
64 } |
|
65 return false; |
|
66 } |
|
67 }, |
|
68 |
|
69 'Modernizr': { |
|
70 test: function(win) { |
|
71 if(win.Modernizr) { |
|
72 return { version: win.Modernizr._version }; |
|
73 } |
|
74 return false; |
|
75 } |
|
76 }, |
|
77 |
|
78 |
|
79 }; |
|
80 |
|
81 function testLibraries() { |
|
82 var win = unsafeWindow; |
|
83 var libraryList = []; |
|
84 for(var i in LD_tests) { |
|
85 var passed = LD_tests[i].test(win); |
|
86 if (passed) { |
|
87 let libraryInfo = { |
|
88 name: i, |
|
89 version: passed.version |
|
90 }; |
|
91 libraryList.push(libraryInfo); |
|
92 } |
|
93 } |
|
94 self.postMessage(libraryList); |
|
95 } |
|
96 |
|
97 testLibraries(); |