IE8 message: "Fabrik is undefined"

kebmsmith

Member
I think I already had this question going in another thread, but I can't find it!

So, I have built a clone of my original site at another URL so we can play with it without interfering with our customers' use of the real site.

Please duplicate the issue (if possible) at www.haiea.org

1. Create a user account (does not require our approval, and email address you use does not even have to be valid).
2. Choose from "Book Event" menu: "Private Petting Zoo Party"

I have reduced the form down to almost nothing - just the group called "contact" containing contact info. When I bring it up in Windows XP, IE8, I get an alert containing "Fabrik is undefined" and a line number, which I can find in the built-in script debugger.

The line and a little context is (the line named in the error message is in RED):
Code:
"- Click on any of the time parts to increase it\n" +
"- or Shift-click to decrease it\n" +
"- or click and drag for faster selection.";

        Calendar._TT["PREV_YEAR"] = "Click to move to the previous year. Click and hold for a list of years."; Calendar._TT["PREV_MONTH"] = "Click to move to the previous month. Click and hold for a list of the months."; Calendar._TT["GO_TODAY"] = "Go to today"; Calendar._TT["NEXT_MONTH"] = "Click to move to the next month. Click and hold for a list of the months."; Calendar._TT["NEXT_YEAR"] = "Click to move to the next year. Click and hold for a list of years."; Calendar._TT["SEL_DATE"] = "Select a date."; Calendar._TT["DRAG_TO_MOVE"] = "Drag to move"; Calendar._TT["PART_TODAY"] = "Today"; Calendar._TT["DAY_FIRST"] = "Display %s first"; Calendar._TT["WEEKEND"] = "0,6"; Calendar._TT["CLOSE"] = "Close"; Calendar._TT["TODAY"] = "Today"; Calendar._TT["TIME_PART"] = "(Shift-)Click or Drag to change the value."; Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; Calendar._TT["WK"] = "wk"; Calendar._TT["TIME"] = "Time:";
head.ready(function() { Fabrik.liveSite = 'http://www.haiea.org/';});
[COLOR=DarkRed]head.ready(function () {
    Fabrik.tips = new FloatingTips('.fabrikTip', [/COLOR]{"tipfx":"Fx.Transitions.Linear","duration":"500","distance":20,"fadein":false});
    Fabrik.addEvent('fabrik.list.updaterows', function () {
        //reattach new tips after list redraw,
        Fabrik.tips.attach('.fabrikTip');
    });
    Fabrik.addEvent('fabrik.plugin.inlineedit.editing', function () {
        Fabrik.tips.hideAll();
    });
});
                
head.js('http://www.haiea.org/components/com_fabrik/libs/slimbox1.64/js/slimbox.js');

Thanks to anyone that sees anything that might point me in the right direction.

This is a small part of a pretty sizable form with lots of groups. I thought disabling most of them might make the error go away. I have another web site with a very small Fabrik-based sign-up form that actually works fine in IE, so I'm not sure what's different about this site.
--
Kevin
 
Is this a recent github, or the last released ZIP?

I made some changes recently to head.js, which fixed a similar error in IE9, although I never tested it in IE8, as we tend to focus on "current and previous" versions of browsers, and now IE10 is out ...

-- hugh
 
It's a pretty recent github pull, maybe a couple weeks ago. I'll check that I'm up-to-date.

Unfortunately IE8 is the highest I can test on my Win XP system.

I've heard of remote web site testing servers where you can look at your site on any operating system and any browser - have you ever used one of those?

FOLLOWUP:
I pulled the up-to-the-minute latest from github and ran it, getting the same results:

head.ready(function () {
Fabrik.liveSite = 'http://www.haiea.org/';
Fabrik.tips = new FloatingTips('.fabrikTip', {"tipfx":"Fx.Transitions.Linear","duration":"500","distance":20,"fadein":false});
Fabrik.addEvent('fabrik.list.updaterows', function () {
//reattach new tips after list redraw,
Fabrik.tips.attach('.fabrikTip');
});
Fabrik.addEvent('fabrik.plugin.inlineedit.editing', function () {
Fabrik.tips.hideAll();
});
});

--
Keb'm
 
There are several older threads that have a very similar complaint. I'm wondering if there is some feature I can disable as a workaround? I have disabled "ShackSlides" (an image slider/animator from JoomlaShack) as well as reverting to the default Joomla template and neither of these changes helped.

Are there any Fabrik features (Javascript animations, Ajax validations, etc) that you might suggest I try turning off that have to do with the above section of code?

Further, once we isolate what's causing the problem, is there a way to selectively unpublish features just for users of certain browsers?
--
Keb'm
 
Asked another way: What does the head.ready function do? And why is it present in this Fabrik/Joomla web site, but not another one that I have up?
 
It's throwing errors in IE9, too.
form-min.js, Zeile 1 Zeichen 10319

Can you
set "Allow Fabrik debugging" =yes or "debug JS" in Fabrik options/Debugging
use a standard Joomla template (e.g. beez or atomic) because your template js_formula may conflict
disable all 3rd party JS compressing
delete all Joomla cache to get rid of old JS files

BTW: your other thread is http://fabrikar.com/forums/showthread.php?p=165813#post165813
 
Point by point:

- I'm not surprised it's getting errors in IE9 as well, because many of my customers have complained that the site is "Not working for them" and they're probably on newer IEs (but they're not technical enough to get much more info from).

- I already have "Allow Fabrik Debugging" turned on. What should this do for me?

- I have already reverted my test site (haiea.org) back to "atomic" and disabled the Joomashack plugin "ShackSlides" (the site is very ugly now :) )

- I don't know how to disabled JS compressing - can you elaborate?

- Turns out I didn't even *have* a cache folder on haiea.org (I did on the original, cathyscritters.com), but I went ahead and created one so I could clear it in the future.

Thanks!
 
:confused:
To me http://www.haiea.org/ is still showing no atomic template but
template/js_formula
and loading all fabrik xxx_min.js (the compressed versions), so it seems it has the fabrikdebug=NO setting

For clearing Joomla cache do
Site/Maintanace Clear Cache + clear expired cach
 
Whoops, you're right about the template, but I'm not sure about the debug.

I think I ran the experiment with atomic, then switched back and had forgotten. Sorry.

I've not set it for atomic with the menu in topmenu and login in sidebar so one can log in and select the form. The menu doesn't do drop-downs anymore, so it's a big mess, but it works.

I did the clear cache / clear expired steps again, just to make sure and had no errors this time (since I created the ./cache directory).

I went to Fabrik -> Options -> Debugging -> and verified that "AllowFabrikDebug" is ON. Debug PDF is also set to YES, but I don't know what that means.

I noticed something else interesting while stepping through the Tools menu screens. I have a setting "Use mediabox instead of slimbox" set to "NO" and I noticed that the options on that screen: Fx duration, distance, hover tips, etc, are the same options that are being set up in the piece of code that always causes the "Fabrik is undefined" error.

I'm going to fool with these options and see if it affects the same blurb of code. Do most people use "mediabox" instead of "slimbox"? Is this a potential problem?

UPDATE:

I changed to mediabox and it didn't make the error go away, but I *did* confirm that messing with JS options in that menu did affect the code in the vicinity of the error. Still throws the error, though :-(
 
I'm going to have to see one of y'alls pages, as I can't provoke any head.js errors in IE8 through IE10, at least using IE10's debug tools and putting it into IE8 or IE9 mode.

To answer your question about head.js, it's a 3rd party JS lib we use for handling JS file dependencies. As we build applications from first principle on every page load, made up of an almost infinite permutation of different plugins, there's a LOT of javascript files that need loading, that have dependencies on each other (so a.js needs b.js to be loaded first). So head.js handles knowing which files to load, when, and waiting for specific files to finish loading before attempting to use them.

We only started using head.js in 3.0, so 2.1 sites won't have it. And in 3.1 we've switched to a different library (Require JS) to do that job.

-- hugh
 
Thanks for the explanation of head.js. My other site (the one that doesn't break, it's a totally different design but does use an Ajax routine to interactively change the form) is also 3.0, but it doesn't have the exact same JS structure when the IE debugger brings it up to view.

When you say "see one of y'alls pages", how do you mean? Do you want a screen shot of the error message alert box? Or the entire "page source" file that contains all the HTML and JS that is served?
--
K
 
Re IE9, up till a few weeks ago when I fixed the head.js library, there would have been bad and system problems for many months prior to that, after one of the IE9 hotfixes caused an problem with head.js. But as of the head.js fix in this commit:

https://github.com/Fabrik/fabrik/commit/821b0be5745ec31e111840958ab968118a9efeaf

... IE9 should work again. Make sure you've done a hard refresh of the pages you are testing, to pick up the new JS files.

And once again, I'll need to see one of y'allls pages to debug this, as I can't provoke this error on any of my test pages. It may be that IE10 in IE8/9 mode isn't an accurate enough duplication of the IE8 engine to be affected, and I may have to set up IE8 and/or IE9 on another computer to test.

- hugh
 
I'd be happy to send whatever I can to help debug it, but I don't understand what you mean by "one of y'alls pages" (not the "y'all" part - I'm from Texas, I get that).

Do you need the "View Source" output from the browser? Or a screen capture of the error? Or the info that IE debugger puts out? Or what?
 
I updated with git and I think properly did the administrator stuff (purge cache, find updates, etc).

Problem still exists with IE8. Same exact behavior. I'm fairly new at updating with git, so you might want to grill me a little to be sure I did it right.

Anything I can post or email to help the debug process?
--
Keb'm
 
I updated with git and I think properly did the administrator stuff (purge cache, find updates, etc).

Problem still exists with IE8. Same exact behavior. I'm fairly new at updating with git, so you might want to grill me a little to be sure I did it right.

Anything I can post or email to help the debug process?
--
Keb'm
 
In http://www.haiea.org/
I can see the "Fabrik not defined" in IE8 mode (Dev tools), but it seems that I can submit the form.

Did you try without your 17.js script?
Can you set "Allow Fabrik debug" to debug JS (Fabrik options)?
 
I have "Allow Fabrik debug" enabled on both haiea.org and cathyscritters.com.

I renamed 17.js and reloaded the site (cathyscritters.com) in IE and chose the menu for the form. It still gave me the "Fabrik is undefined" error, plus lots of other problems.

If I run it without 17.js, it won't work at all. There is too much interaction that is crippled.

For example, when a user chooses "party package type", 17.js sends an AJAX request to the server requesting the list of possible party durations (i.e., 1 hour, 1.5 hour, 2 hour, etc) to populate next pull-down. If 17.js is not there, the pulldown starts out empty and never gets populated.

I tried this and was not able to provide enough data to the validation checkers to even allow me to submit. I could not choose a duration, so the form is not able to calculate a price (which it needs 17.js) for as well, as the price is updated interactively with each choice.
 
Ok it was because hugh's fix only addressed ie9, where as the same fix is applicable to earlier versions of IE as well.
I've updated the head.js files, the changes are available in github
 
We are in need of some funding.
More details.

Thank you.

Members online

Back
Top