I have had a number of problems with javascript (using jQuery) and Firefox 
the past few months. These errors were not occurring in any other browser 
(IE7, IE8, IE9, Chrome or Safari). They have been generally related to 
scoping in that existing objects were turning up 'unidentified' in console. 
I could navigate through the DOM and find them, just not where they were 
supposed to be. This has plagued me on 3 projects, with different jQuery 
plugins. The latest incident was using jQuery.validate.js and created an 
error 'validator is undefined'. In the process of trying to solve this 
issue, I created a single field form with nothing else in the HTML other 
than the page script and the links to jQuery and jquery.validate.min.js.

In my testing, I had success using FF9, 10 and 11 from Spoon.net. It was 
then I realized none of those versions were running Firebug like I do on 
the version of 11 installed on my Mac.

Disabling Firebug solved the problem completely with jquery.validate.js. So 
I began to wonder about the other projects that had given me problems. I 
went back to the old code and removed the changes I made to accommodate for 
Firefox and everything worked.

Example 1 - With Firebug enabled, this works:
http://mgh.bigheadservices.com/sweets/v7/index.fb.html

Example 2 - Firebug Disabled, this works:
http://mgh.bigheadservices.com/sweets/v7/index.html

Disable Firebug on example 1 and it fails. Enable on Example 2 and it fails.

The particular issue here is the object data. 

The correct and recommended method (used in Example 2) is:
    apis.push($(this).jScrollPane({showArrows: true, innerArrows: 
true}).data('jsp')); 

The method I had to use to get it to work (as I was developing in FF with 
FB):
    $.browser.mozilla ?
        apis.push($(this).jScrollPane({showArrows: true, innerArrows: 
true}).data('data.jsp'))
        : apis.push($(this).jScrollPane({showArrows: true, innerArrows: 
true}).data('jsp'));

Using the recommended method would cause a failure when I tried to access 
the stored data:
    $.each(apis, function(i) {
      * this.destroy();*
    });

The altered version:
    $.each(apis, function(i) {
        $.browser.mozilla ? this.*jsp*.destroy() : this.destroy();
    });

I do not make any claim to be a programming Ninja or expert at all. I've 
been more than willing to accept that the failures were mine. However, 
 disabling Firebug has eliminated all javascript errors on the 2 projects 
I've tested. The pages function as they were designed to. I'm hopeful that 
this helps others that might be dealing with similar issues where a script 
is inexplicably failing solely in Firefox.


-- 
You received this message because you are subscribed to the Google
Groups "Firebug" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
https://groups.google.com/forum/#!forum/firebug

Reply via email to