Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / docs / api / Ext.env.Browser.html
1 <!DOCTYPE html><html><head><title>Ext.env.Browser | Ext JS 4.0 Documentation</title><script type="text/javascript" src="../ext-all.js"></script><link rel="stylesheet" href="../reset.css" type="text/css"><link rel="stylesheet" href="../scrollbars.css" type="text/css"><link rel="stylesheet" href="../docs.css" type="text/css"><link id="styleCss" rel="stylesheet" href="../style.css" type="text/css"><script type="text/javascript" src="../prettify.js"></script><link rel="stylesheet" href="../prettify.css" type="text/css"><!-- link(rel: 'stylesheet', href: req.baseURL + '/css/ext4.css', type: 'text/css')--><link rel="shortcut icon" type="image/ico" href="../favicon.ico"><!--[if IE]>
2 <style type="text/css">.head-band { display: none; }
3 .header { border: 0; top: 0; left: 0px; background: url(../header.gif) repeat-x; }
4 .doc-tab .members .member a.more { background-color: #efefef; }
5 </style><link rel="stylesheet" href="/new/css/ie.css" type="text/css"><![endif]-->
6 </head><body id="ext-body" class="iScroll"><div id="notice" class="notice">For up to date documentation and features, visit 
7 <a href="http://docs.sencha.com/ext-js/4-0">http://docs.sencha.com/ext-js/4-0</a></div><div class="wrapper"><div class="head-band"></div><div class="header"><h2><a href="../index.html">Sencha Documentation</a></h2></div><div id="search"><form><input type="text" placeholder="Search" id="search-field" autocomplete="off" name="q"></form><div id="search-box"></div></div><div id="treePanel"></div><div id="container"><script type="text/javascript">
8
9     req = {
10         liveURL: '.',
11         standAloneMode: true,
12         origDocClass: 'Ext.env.Browser',
13         docClass: 'Ext.env.Browser',
14         docReq: 'Ext.env.Browser',
15         version: '4.0',
16         baseURL: '.',
17         baseDocURL: '.',
18         baseProdURL: '.'
19     };
20
21     clsInfo = {};
22
23
24
25 </script>
26
27 <script type="text/javascript" src="../search.js"></script>
28 <!--script type="text/javascript" src="/new/javascripts/app/examples.js"></script-->
29 <script type="text/javascript" src="../class_tree.js"></script>
30 <script type="text/javascript" src="../class_doc.js"></script>
31 <script type="text/javascript">
32     req.source = 'Browser.html#Ext-env.Browser';
33     clsInfo = {"methods":["callOverridden","getName"],"cfgs":[],"properties":["addStatics","borrow","create","createAlias","engineName","engineVersion","implement","is","isSecure","isStrict","name","override","version"],"events":[],"subclasses":[]};
34     Ext.onReady(function() {
35         Ext.create('Docs.classPanel');
36     });
37 </script><div id="top-block" class="top-block"><h1 id="clsTitle" class="cls"><a href="../source/Browser.html#Ext-env.Browser" target="_blank">Ext.env.Browser</a></h1></div><div id="docContent"><div id="doc-overview-content"><div class="lft"><pre class="subclasses"><h4>Hierarchy</h4><div class="subclass f"><a href="Ext.Base.html" rel="Ext.Base" class="cls docClass">Ext.Base</a><div class="subclass"><strong>Ext.env.Browser</strong></div></div></pre><p>Provide useful information about the current browser.
38 Should not be manually instantiated unless for unit-testing; access the global instance stored in Ext.browser instead. Example:</p>
39
40 <pre class="prettyprint"><code>if (Ext.browser.is.IE) {
41      // IE specific code here
42 }
43
44 if (Ext.browser.is.WebKit) {
45      // WebKit specific code here
46 }
47
48 console.log("Version " + Ext.browser.version);
49 </code></pre>
50
51
52 <p>For a full list of supported values, refer to: <a href="Ext.env.Browser.html#is" rel="Ext.env.Browser#is" class="docClass">is</a></p>
53
54 <p>@borrows Ext.Base.extend</p>
55 <div class="members"><div class="m-properties"><a name="properties"></a><div class="definedBy">Defined By</div><h3 class="prp p">Properties</h3><div id="property-addStatics" class="member f inherited"><a href="Ext.env.Browser.html#property-addStatics" rel="property-addStatics" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.Base.html" class="definedIn docClass">Ext.Base</a><br/><a href="../source/Base3.html#Ext-Base-property-addStatics" class="viewSource">view source</a></div><a name="addStatics"></a><a name="property-addStatics"></a><a href="Ext.env.Browser.html#" rel="property-addStatics" class="cls expand">addStatics</a><span> : Function</span></div><div class="description"><div class="short">Add / override static properties of this class.
56
57 Ext.define('My.cool.Class', {
58     ...
59 });
60
61 My.cool.Class.addStatics(...</div><div class="long"><p>Add / override static properties of this class.</p>
62
63 <pre><code>Ext.define('My.cool.Class', {
64     ...
65 });
66
67 My.cool.Class.addStatics({
68     someProperty: 'someValue',      // My.cool.Class.someProperty = 'someValue'
69     method1: function() { ... },    // My.cool.Class.method1 = function() { ... };
70     method2: function() { ... }     // My.cool.Class.method2 = function() { ... };
71 });
72 </code></pre>
73 </div></div></div><div id="property-borrow" class="member inherited"><a href="Ext.env.Browser.html#property-borrow" rel="property-borrow" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.Base.html" class="definedIn docClass">Ext.Base</a><br/><a href="../source/Base3.html#Ext-Base-property-borrow" class="viewSource">view source</a></div><a name="borrow"></a><a name="property-borrow"></a><a href="Ext.env.Browser.html#" rel="property-borrow" class="cls expand">borrow</a><span> : Function</span></div><div class="description"><div class="short">Borrow another class' members to the prototype of this class.
74
75 Ext.define('Bank', {
76
77 money: '$$$',
78 printMoney: functi...</div><div class="long"><p>Borrow another class' members to the prototype of this class.</p>
79
80 <p>Ext.define('Bank', {</p>
81
82 <pre><code>money: '$$$',
83 printMoney: function() {
84     alert('$$$$$$$');
85 }
86 </code></pre>
87
88 <p>});</p>
89
90 <p>Ext.define('Thief', {</p>
91
92 <pre><code>...
93 </code></pre>
94
95 <p>});</p>
96
97 <p>Thief.borrow(Bank, ['money', 'printMoney']);</p>
98
99 <p>var steve = new Thief();</p>
100
101 <p>alert(steve.money); // alerts '$$$'
102 steve.printMoney(); // alerts '$$$$$$$'</p>
103 </div></div></div><div id="property-create" class="member inherited"><a href="Ext.env.Browser.html#property-create" rel="property-create" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.Base.html" class="definedIn docClass">Ext.Base</a><br/><a href="../source/Base3.html#Ext-Base-property-create" class="viewSource">view source</a></div><a name="create"></a><a name="property-create"></a><a href="Ext.env.Browser.html#" rel="property-create" class="cls expand">create</a><span> : Function</span></div><div class="description"><div class="short">Create a new instance of this Class.
104 Ext.define('My.cool.Class', {
105
106 ...
107
108
109 });
110
111 My.cool.Class.create({
112
113 someConfig: tr...</div><div class="long"><p>Create a new instance of this Class.
114 Ext.define('My.cool.Class', {</p>
115
116 <pre><code>...
117 </code></pre>
118
119 <p>});</p>
120
121 <p>My.cool.Class.create({</p>
122
123 <pre><code>someConfig: true
124 </code></pre>
125
126 <p>});</p>
127 </div></div></div><div id="property-createAlias" class="member inherited"><a href="Ext.env.Browser.html#property-createAlias" rel="property-createAlias" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.Base.html" class="definedIn docClass">Ext.Base</a><br/><a href="../source/Base3.html#Ext-Base-property-createAlias" class="viewSource">view source</a></div><a name="createAlias"></a><a name="property-createAlias"></a><a href="Ext.env.Browser.html#" rel="property-createAlias" class="cls expand">createAlias</a><span> : Function</span></div><div class="description"><div class="short">Create aliases for existing prototype methods. Example:
128
129 Ext.define('My.cool.Class', {
130     method1: function() { ... ...</div><div class="long"><p>Create aliases for existing prototype methods. Example:</p>
131
132 <pre><code>Ext.define('My.cool.Class', {
133     method1: function() { ... },
134     method2: function() { ... }
135 });
136
137 var test = new My.cool.Class();
138
139 My.cool.Class.createAlias({
140     method3: 'method1',
141     method4: 'method2'
142 });
143
144 test.method3(); // test.method1()
145
146 My.cool.Class.createAlias('method5', 'method3');
147
148 test.method5(); // test.method3() -&gt; test.method1()
149 </code></pre>
150 </div></div></div><div id="property-engineName" class="member ni"><a href="Ext.env.Browser.html#property-engineName" rel="property-engineName" class="expand more"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.env.Browser.html" class="definedIn docClass">Ext.env.Browser</a><br/><a href="../source/Browser.html#Ext-env.Browser-property-engineName" class="viewSource">view source</a></div><a name="engineName"></a><a name="property-engineName"></a><a href="Ext.env.Browser.html#" rel="property-engineName" class="cls expand">engineName</a><span> : String</span></div><div class="description"><div class="short"><p>Read-only - the full name of the current browser's engine
151 Possible values are: WebKit, Gecko, Presto, Trident and Other</p>
152 </div><div class="long"><p>Read-only - the full name of the current browser's engine
153 Possible values are: WebKit, Gecko, Presto, Trident and Other</p>
154 </div></div></div><div id="property-engineVersion" class="member ni"><a href="Ext.env.Browser.html#property-engineVersion" rel="property-engineVersion" class="expand more"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.env.Browser.html" class="definedIn docClass">Ext.env.Browser</a><br/><a href="../source/Browser.html#Ext-env.Browser-property-engineVersion" class="viewSource">view source</a></div><a name="engineVersion"></a><a name="property-engineVersion"></a><a href="Ext.env.Browser.html#" rel="property-engineVersion" class="cls expand">engineVersion</a><span> : Ext.Version</span></div><div class="description"><div class="short"><p>Read-only, refer to <a href="Ext.Version.html" rel="Ext.Version" class="docClass">Ext.Version</a></p>
155 </div><div class="long"><p>Read-only, refer to <a href="Ext.Version.html" rel="Ext.Version" class="docClass">Ext.Version</a></p>
156 </div></div></div><div id="property-implement" class="member inherited"><a href="Ext.env.Browser.html#property-implement" rel="property-implement" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.Base.html" class="definedIn docClass">Ext.Base</a><br/><a href="../source/Base3.html#Ext-Base-property-implement" class="viewSource">view source</a></div><a name="implement"></a><a name="property-implement"></a><a href="Ext.env.Browser.html#" rel="property-implement" class="cls expand">implement</a><span> : Function</span></div><div class="description"><div class="short">Add methods / properties to the prototype of this class.
157
158 Ext.define('My.awesome.Cat', {
159     constructor: function() ...</div><div class="long"><p>Add methods / properties to the prototype of this class.</p>
160
161 <pre><code>Ext.define('My.awesome.Cat', {
162     constructor: function() {
163         ...
164     }
165 });
166
167  My.awesome.Cat.implement({
168      meow: function() {
169         alert('Meowww...');
170      }
171  });
172
173  var kitty = new My.awesome.Cat;
174  kitty.meow();
175 </code></pre>
176 </div></div></div><div id="property-is" class="member ni"><a href="Ext.env.Browser.html#property-is" rel="property-is" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.env.Browser.html" class="definedIn docClass">Ext.env.Browser</a><br/><a href="../source/Browser.html#Ext-env.Browser-property-is" class="viewSource">view source</a></div><a name="is"></a><a name="property-is"></a><a href="Ext.env.Browser.html#" rel="property-is" class="cls expand">is</a><span> : Object</span></div><div class="description"><div class="short">A "hybrid" property, can be either accessed as a method call, i.e:
177
178 if (Ext.browser.is('IE')) { ... }
179
180
181
182 or as an obj...</div><div class="long"><p>A "hybrid" property, can be either accessed as a method call, i.e:</p>
183
184 <pre><code>if (Ext.browser.is('IE')) { ... }
185 </code></pre>
186
187
188 <p>or as an object with boolean properties, i.e:</p>
189
190 <pre><code>if (Ext.browser.is.IE) { ... }
191 </code></pre>
192
193
194 <p>Versions can be conveniently checked as well. For example:</p>
195
196 <pre><code>if (Ext.browser.is.IE6) { ... } // Equivalent to (Ext.browser.is.IE && Ext.browser.version.equals(6))
197 </code></pre>
198
199
200 <p>Note that only <a href="Ext.Version.html#getMajor" rel="Ext.Version#getMajor" class="docClass">major component</a>  and <a href="Ext.Version.html#getShortVersion" rel="Ext.Version#getShortVersion" class="docClass">shortVersion</a>
201 value of the version are available via direct property checking.</p>
202
203 <p>Supported values are: IE, Firefox, Safari, Chrome, Opera, WebKit, Gecko, Presto, Trident and Other</p>
204 </div></div></div><div id="property-isSecure" class="member ni"><a href="Ext.env.Browser.html#property-isSecure" rel="property-isSecure" class="expand more"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.env.Browser.html" class="definedIn docClass">Ext.env.Browser</a><br/><a href="../source/Browser.html#Ext-env.Browser-property-isSecure" class="viewSource">view source</a></div><a name="isSecure"></a><a name="property-isSecure"></a><a href="Ext.env.Browser.html#" rel="property-isSecure" class="cls expand">isSecure</a><span> : Boolean</span></div><div class="description"><div class="short"><p>True if the page is running over SSL</p>
205 </div><div class="long"><p>True if the page is running over SSL</p>
206 </div></div></div><div id="property-isStrict" class="member ni"><a href="Ext.env.Browser.html#property-isStrict" rel="property-isStrict" class="expand more"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.env.Browser.html" class="definedIn docClass">Ext.env.Browser</a><br/><a href="../source/Browser.html#Ext-env.Browser-property-isStrict" class="viewSource">view source</a></div><a name="isStrict"></a><a name="property-isStrict"></a><a href="Ext.env.Browser.html#" rel="property-isStrict" class="cls expand">isStrict</a><span> : Boolean</span></div><div class="description"><div class="short"><p>True if the document is in strict mode</p>
207 </div><div class="long"><p>True if the document is in strict mode</p>
208 </div></div></div><div id="property-name" class="member ni"><a href="Ext.env.Browser.html#property-name" rel="property-name" class="expand more"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.env.Browser.html" class="definedIn docClass">Ext.env.Browser</a><br/><a href="../source/Browser.html#Ext-env.Browser-property-name" class="viewSource">view source</a></div><a name="name"></a><a name="property-name"></a><a href="Ext.env.Browser.html#" rel="property-name" class="cls expand">name</a><span> : String</span></div><div class="description"><div class="short"><p>Read-only - the full name of the current browser
209 Possible values are: IE, Firefox, Safari, Chrome, Opera and Other</p>
210 </div><div class="long"><p>Read-only - the full name of the current browser
211 Possible values are: IE, Firefox, Safari, Chrome, Opera and Other</p>
212 </div></div></div><div id="property-override" class="member inherited"><a href="Ext.env.Browser.html#property-override" rel="property-override" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.Base.html" class="definedIn docClass">Ext.Base</a><br/><a href="../source/Base3.html#Ext-Base-property-override" class="viewSource">view source</a></div><a name="override"></a><a name="property-override"></a><a href="Ext.env.Browser.html#" rel="property-override" class="cls expand">override</a><span> : Function</span></div><div class="description"><div class="short">Override prototype members of this class. Overridden methods can be invoked via
213 Ext.Base.callOverridden
214
215 Ext.define('...</div><div class="long"><p>Override prototype members of this class. Overridden methods can be invoked via
216 <a href="Ext.Base.html#callOverridden" rel="Ext.Base#callOverridden" class="docClass">Ext.Base.callOverridden</a></p>
217
218 <pre><code>Ext.define('My.Cat', {
219     constructor: function() {
220         alert("I'm a cat!");
221
222         return this;
223     }
224 });
225
226 My.Cat.override({
227     constructor: function() {
228         alert("I'm going to be a cat!");
229
230         var instance = this.callOverridden();
231
232         alert("Meeeeoooowwww");
233
234         return instance;
235     }
236 });
237
238 var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
239                           // alerts "I'm a cat!"
240                           // alerts "Meeeeoooowwww"
241 </code></pre>
242 </div></div></div><div id="property-version" class="member ni"><a href="Ext.env.Browser.html#property-version" rel="property-version" class="expand more"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.env.Browser.html" class="definedIn docClass">Ext.env.Browser</a><br/><a href="../source/Browser.html#Ext-env.Browser-property-version" class="viewSource">view source</a></div><a name="version"></a><a name="property-version"></a><a href="Ext.env.Browser.html#" rel="property-version" class="cls expand">version</a><span> : Ext.Version</span></div><div class="description"><div class="short"><p>Read-only, refer to <a href="Ext.Version.html" rel="Ext.Version" class="docClass">Ext.Version</a></p>
243 </div><div class="long"><p>Read-only, refer to <a href="Ext.Version.html" rel="Ext.Version" class="docClass">Ext.Version</a></p>
244 </div></div></div></div><div class="m-methods"><a name="methods"></a><div class="definedBy">Defined By</div><h3 class="mth p">Methods</h3><div id="method-callOverridden" class="member f inherited"><a href="Ext.env.Browser.html#method-callOverridden" rel="method-callOverridden" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.Base.html" class="definedIn docClass">Ext.Base</a><br/><a href="../source/Base3.html#Ext-Base-method-callOverridden" class="viewSource">view source</a></div><a name="callOverridden"></a><a name="method-callOverridden"></a><a href="Ext.env.Browser.html#" rel="method-callOverridden" class="cls expand">callOverridden</a>(
245 <span class="pre">Array/Arguments args</span>)
246  : Mixed</div><div class="description"><div class="short">Call the original method that was previously overridden with Ext.Base.override
247
248 Ext.define('My.Cat', {
249     constructo...</div><div class="long"><p>Call the original method that was previously overridden with <a href="Ext.Base.html#override" rel="Ext.Base#override" class="docClass">Ext.Base.override</a></p>
250
251 <pre><code>Ext.define('My.Cat', {
252     constructor: function() {
253         alert("I'm a cat!");
254
255         return this;
256     }
257 });
258
259 My.Cat.override({
260     constructor: function() {
261         alert("I'm going to be a cat!");
262
263         var instance = this.callOverridden();
264
265         alert("Meeeeoooowwww");
266
267         return instance;
268     }
269 });
270
271 var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
272                           // alerts "I'm a cat!"
273                           // alerts "Meeeeoooowwww"
274 </code></pre>
275 <h3 class="pa">Parameters</h3><ul><li><span class="pre">args</span> : Array/Arguments<div class="sub-desc"><p>The arguments, either an array or the <code>arguments</code> object</p>
276 </div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">Mixed</span>&nbsp; &nbsp;<p>Returns the result after calling the overridden method</p>
277 </li></ul></div></div></div><div id="method-getName" class="member inherited"><a href="Ext.env.Browser.html#method-getName" rel="method-getName" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.Base.html" class="definedIn docClass">Ext.Base</a><br/><a href="../source/Base3.html#Ext-Base-method-getName" class="viewSource">view source</a></div><a name="getName"></a><a name="method-getName"></a><a href="Ext.env.Browser.html#" rel="method-getName" class="cls expand">getName</a> : String</div><div class="description"><div class="short">Get the current class' name in string format.
278
279 Ext.define('My.cool.Class', {
280     constructor: function() {
281         al...</div><div class="long"><p>Get the current class' name in string format.</p>
282
283 <pre><code>Ext.define('My.cool.Class', {
284     constructor: function() {
285         alert(this.self.getName()); // alerts 'My.cool.Class'
286     }
287 });
288
289 My.cool.Class.getName(); // 'My.cool.Class'
290 </code></pre>
291 <h3 class="pa">Returns</h3><ul><li><span class="pre">String</span>&nbsp; &nbsp;<p>className</p>
292 </li></ul></div></div></div></div></div></div></div><div id="pageContent"></div></div></div></div></body></html>