Joern's patch... if ( this.nodeType == 9 || $.isXMLDoc(this) || this.metaDone ) return;
...is the real thing and I'll go with that. I'll update my blog post and point to the new patch. Thanks John! On Apr 10, 6:27 pm, "John Resig" <[EMAIL PROTECTED]> wrote: > Joern committed a patch for this the other > day:http://dev.jquery.com/browser/trunk/plugins/metadata/lib/jQuery/metad... > > I hope this helps! > > --John > > On 4/10/07, Marshall Salinger <[EMAIL PROTECTED]> wrote: > > > > > Diego A. wrote: > > > I've been fighting with this bug too and I believe I've found the fix. > > > I can't be 100% sure, but I believe the problem was in the jquery.metaData > > > plugin. > > > The fix has worked for me and 2 other people so far... > > > > Here is the fix I posted on my blog, hope it helps. And if it does work > > > for > > > you, then this is definitely what's been driving so many people crazy! > > > >http://fyneworks.blogspot.com/2007/04/fix-for-jquery-bug-in-ie-workin... > > > > = Fix for jQuery bug in IE - Working with XML documents = > > > > It's been driving me crazy and I'm not alone (1, 2). But I've finally > > > managed to fix the weird jQuery bug in IE when working with XML documents > > > (or so I hope). > > > > The bug isn't in jQuery itself, it's in the very popular Metadata plug-in, > > > used to load meta data and settings from elements using the class > > > property. > > > > The Error: Lines 101 - 105 in the Metadata plugin. > > > if ( $.meta.single ) > > > this[ $.meta.single ] = data; // Throws error on XML documents in IE > > > else > > > $.extend( this, data ); // Throws error on XML documents in IE > > > > this.metaDone = true; // Throws error on XML documents in IE > > > > The fix: Find lines 75-77 in the Metadata plugin: > > > $.fn.setArray = function(){ > > > return setArray.apply( this, arguments ).each(function(){ > > > if ( this.metaDone ) return; > > > > And make the following change: (add line) > > > $.fn.setArray = function(){ > > > return setArray.apply( this, arguments ).each(function(){ > > > try{ this['meta']=null; }catch(e){ return; } // Detect and trap > > > error > > > if ( this.metaDone ) return; > > > > And that's it! This fix will allow Metadata to do what it does on HTML > > > elements and not throw that obscure "Object doesn't support this property > > > or > > > method" error in Internet Explorer. > > > I just wanted to say thank you for posting this. I ran into the same > > problem when trying to get IE 7 to parse xml. I was also including the > > metadata plugin on the page and was unable to get the text from any xml > > nodes. I added the error catching code and it fixed the problem. > > > Thanks, > > Marshall