Jquery error

Permalink
Hello everyone. I have been creating a slide show block based off the original in the concrete core. I am having a strange problem with Internet explorer. The error shows in firefox only in the console and does not stop the application but in ie 8 an error message is displayed and it appears to stop the application. in edit mode the window does not close after update but if you look at the db everything was updated correctly. In IE compatibility mode things really get wacky, the add image button floats around and db is never updated. The error is:
[jquery.form] state = uninitialized
jquery...c3e306b (line 902)
[jquery.form] state = loading
jquery...c3e306b (line 902)
[jquery.form] isXml=false
jquery...c3e306b (line 902

this is from the console in firefox. ie is basicly the same error but has a more detrimental effect on the app.

thnaks
Tony Fandino

 
afandino replied on at Permalink Reply
one more thing all the errors occur only in edit or add mode.
afandino replied on at Permalink Reply
The source code of the error i am getting :
/ helper fn for console logging
function log() {
    var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
    if (window.console && window.console.log) {
        window.console.log(msg);
    }
    else if (window.opera && window.opera.postError) {
        window.opera.postError(msg);
    }
};
JohntheFish replied on at Permalink Reply
JohntheFish
Your source code is missing a '}' to close the function. Perhaps that is just a typo on the forum and not the cause of your errors.

Personally, I always put an exception handler inside anything that is environment specific, to catch just the sort of random error you seem to be having.

function log() {
  try {
    var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
    if (window.console && window.console.log) {
      window.console.log(msg);
    }
    else if (window.opera && window.opera.postError) {
      window.opera.postError(msg);
    }
  } catch (e){
    alert(e);
  }
}
afandino replied on at Permalink Reply
The source is from the core jquery file jquery.form.js
JohntheFish replied on at Permalink Reply
JohntheFish
The routine you posted is just the messenger and will not be the source of your error. Its a distraction from the real issue.

With the 'uninitialised' messages cropping up multiple times and being different between browsers, I would look for something being run before the DOM is ready. ie. Stuff happening involving jQuery outside of a $(document).ready(). Another possibility is jQuery plugins being loaded in a funny order.
afandino replied on at Permalink Reply
Thanks for your response,
You seem to be right but i still can't isolate the problem. I thought it may be my auto.js but if i don't load it the error is still there. I found another more serious error in jquery.js that giving me the 80020101 error in internet explorer. May i say that the error only occurs when i submit the form. Strange because evrything is fine in firefox and FF dose not catch the jquery.js error only IE does. below is the function in jquery.js that explorer is telling me theres a problem with but i don't see what it can be.
resolveWith: function (e, f)
                    {
                        if (!d && !b && !c)
                        {
                            f = f || [], c = 1;
                            try
                            {
                                while (a[0]) a.shift().apply(e, f)
                            }
                            finally {
                                b = [e, f], c = 0
                                     }
                        }
                        return this
                    },

explorer breaks on the line finally at the bracket.

The record does get saved to the db but explorer hangs up on the client side.

Let me also add that when in edit mode i do not load the jquery code for the slideshow. The code seems to disable the bar on top in edit mode, Still have not figured out the conflict there but not loading the jquery code in edit mode was the easy fix.
JohntheFish replied on at Permalink Reply
JohntheFish
If it really is a problem inside jQuery, you would be better off seeking help on jQuery's own forums.

With that aside, I would proceed on the assumption that jQuery is OK on IE8, at least if it is an up-to-date version of jQuery.

The routine you posted is probably deep inside jquery. I would try using the developer console to get a stack trace to where the initial call or event enters jQuery at the root of the chain of events that leads to your errors.

Then, put a break point on that and progressively (over repeated page loads) breakpoint and trace and set a preceding breakpoint to work your way back, inspecting the data and making sure it is correct as you go.

Does your theme include any script that could be interacting with other stuff you are doing?

You could also see if there are id="name" in the html duplicated as this can also cause unpredictable JavaScript behaviour.
afandino replied on at Permalink Reply
John thanks for taking the time to help me on this.

You are correct that it is deep inside jquery. I just don't know how to troubleshoot this problem. It's got me scratching my head for sure. during edit no jquery code is loaded and in my block i have no ids that conflict. I am truly at a loss. I am using the pixel green theme and it uses no js in the theme.


when i look in the call stack this is what i see:

JScript anonymous function
w
> JScript anonymous function

It all starts on the send function within jquery.
JohntheFish replied on at Permalink Reply
JohntheFish
I don't actually think it is inside jQuery. jQuery is probably one of the best tested and most used open source projects in existence, so when I get errors from inside jQuery I always start looking at what I am doing to cause the error.

My own errors have always been because jQuery is being passed data it can't cope with, or being called at a time when it isn't ready, or in a flawed DOM, or using a less well tested plugin, and that as a consequence something inside jQuery is taken outside of what it can cope with.

In C5, a common issue with developing a block is double loading of a plugin, from different files but with the same name, caused by other blocks doing their own thing with the jQuery plugin or the theme doing it. Another is double loading of jQuery or jQuery.ui. Your pattern of errors suggest you are not suffering that sort of problem (unless an ajax response is returning more than it should).

Have you tried a separate clean install, plain yougurt, no addons other than the one you are working on?
afandino replied on at Permalink Reply
i have tried that on that on the yogert theme. no luck just gives the same error
afandino replied on at Permalink Best Answer Reply
I was able to trace the problem. I was inserting some javascript style info into the document. The entry string was <!-- and exit was -->

This is what was causing the problem.

so I changed them to //<!-- and //-->

and bingo no IE errors