@@ 4903-4940 (lines=38) @@ | ||
4900 | ||
4901 | // Check to see if the browser returns elements by name when |
|
4902 | // querying by getElementById (and provide a workaround) |
|
4903 | (function(){ |
|
4904 | // We're going to inject a fake input element with a specified name |
|
4905 | var form = document.createElement("div"), |
|
4906 | id = "script" + (new Date()).getTime(), |
|
4907 | root = document.documentElement; |
|
4908 | ||
4909 | form.innerHTML = "<a name='" + id + "'/>"; |
|
4910 | ||
4911 | // Inject it into the root element, check its status, and remove it quickly |
|
4912 | root.insertBefore( form, root.firstChild ); |
|
4913 | ||
4914 | // The workaround has to do additional checks after a getElementById |
|
4915 | // Which slows things down for other browsers (hence the branching) |
|
4916 | if ( document.getElementById( id ) ) { |
|
4917 | Expr.find.ID = function( match, context, isXML ) { |
|
4918 | if ( typeof context.getElementById !== "undefined" && !isXML ) { |
|
4919 | var m = context.getElementById(match[1]); |
|
4920 | ||
4921 | return m ? |
|
4922 | m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? |
|
4923 | [m] : |
|
4924 | undefined : |
|
4925 | []; |
|
4926 | } |
|
4927 | }; |
|
4928 | ||
4929 | Expr.filter.ID = function( elem, match ) { |
|
4930 | var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); |
|
4931 | ||
4932 | return elem.nodeType === 1 && node && node.nodeValue === match; |
|
4933 | }; |
|
4934 | } |
|
4935 | ||
4936 | root.removeChild( form ); |
|
4937 | ||
4938 | // release memory in IE |
|
4939 | root = form = null; |
|
4940 | })(); |
|
4941 | ||
4942 | (function(){ |
|
4943 | // Check to see if the browser returns only elements |
@@ 4259-4296 (lines=38) @@ | ||
4256 | ||
4257 | // Check to see if the browser returns elements by name when |
|
4258 | // querying by getElementById (and provide a workaround) |
|
4259 | (function(){ |
|
4260 | // We're going to inject a fake input element with a specified name |
|
4261 | var form = document.createElement("div"), |
|
4262 | id = "script" + (new Date()).getTime(), |
|
4263 | root = document.documentElement; |
|
4264 | ||
4265 | form.innerHTML = "<a name='" + id + "'/>"; |
|
4266 | ||
4267 | // Inject it into the root element, check its status, and remove it quickly |
|
4268 | root.insertBefore( form, root.firstChild ); |
|
4269 | ||
4270 | // The workaround has to do additional checks after a getElementById |
|
4271 | // Which slows things down for other browsers (hence the branching) |
|
4272 | if ( document.getElementById( id ) ) { |
|
4273 | Expr.find.ID = function( match, context, isXML ) { |
|
4274 | if ( typeof context.getElementById !== "undefined" && !isXML ) { |
|
4275 | var m = context.getElementById(match[1]); |
|
4276 | ||
4277 | return m ? |
|
4278 | m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? |
|
4279 | [m] : |
|
4280 | undefined : |
|
4281 | []; |
|
4282 | } |
|
4283 | }; |
|
4284 | ||
4285 | Expr.filter.ID = function( elem, match ) { |
|
4286 | var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); |
|
4287 | ||
4288 | return elem.nodeType === 1 && node && node.nodeValue === match; |
|
4289 | }; |
|
4290 | } |
|
4291 | ||
4292 | root.removeChild( form ); |
|
4293 | ||
4294 | // release memory in IE |
|
4295 | root = form = null; |
|
4296 | })(); |
|
4297 | ||
4298 | (function(){ |
|
4299 | // Check to see if the browser returns only elements |