Opened 10 years ago
Closed 10 years ago
#11829 closed bug (worksforme)
isArray bug IE6 and IE7
Reported by: | Owned by: | Rick Waldron | |
---|---|---|---|
Priority: | undecided | Milestone: | None |
Component: | unfiled | Version: | 1.7.2 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
I'd like to point out an obscure IE6 and IE7 bug in the isArray function.
The call below will display [object Object], not [object Array], so the Ext.isArray() call will fail in this case.
if (window.opener) {
var test = Object.prototype.toString.call(window.opener.testArr); alert(test);
}
See a discussion here, search for 'Richard Cornford explains'
http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/
Also, I'd consider delegating isArray to Array.isArrary where possible, see the ECMAScript 5.1 spec
http://ecma-international.org/ecma-262/5.1/
Les
Change History (3)
comment:1 Changed 10 years ago by
comment:2 Changed 10 years ago by
Owner: | set to Rick Waldron |
---|---|
Status: | new → assigned |
comment:3 Changed 10 years ago by
Resolution: | → worksforme |
---|---|
Status: | assigned → closed |
Thanks for contribution, as it turns out, everything you've asked jQuery to do - it already does.
isArray: Array.isArray || function( obj ) { return jQuery.type(obj) === "array"; }, ... type: function( obj ) { return obj == null ? String( obj ) : class2type[ toString.call(obj) ] || "object"; },
Ext.isArray ---> jQuery.isArray