IE8 Windows 7 failing

First of all, this suite is amazing! Now that the pleasantries are out of the way, it’s time to discuss everyone’s favorite browser, Internet Explorer.

I realize this suite is intended for mobile devices, but most functionalities work with good…I mean compliant desktop browsers, and that’s a good thing.

The Grouplist component works great in Firefox, Safari, Chrome, and mostly Opera. I’ve found it also works fine in IE9 using Vista. However, on my Windows 7 machine (running IE8), I get an “Object expected” error in touchui.js for this function:

//delay call to after-render time dhx.delay=function(method, obj, params, delay){ return window.setTimeout(function() { var ret = method.apply(obj,params); method = obj = params = null; return ret; },delay||1); };

It’s this line that causes the problem:
var ret = method.apply(obj,params);

Thoughts, anyone?

As fast solution you can replace the above line as

var ret = method.apply(obj,(params||[]));

It will fix issue in IE8 ( such fix is already included in dev. version and will be included in the next version )

Good man!

Thank you. :smiley:

Whoops, another error presents itself.

	_touchstart :function(e){
		if(t._disabled) return;

		t._start_context = t._get_context(e);
		t._translate_event("onTouchStart");

		if(t._scroll[0] || t._scroll[1])
			t._stop_scroll(e);

		t._long_touch_timer = window.setTimeout(t._long_touch, t.config.longTouchDelay);

		var element = dhx.ui.get(e);

		if(element && element.touchable && (!e.target.className || e.target.className.indexOf("dhx_view")!==0)){
			t._css_button_remove = element.getNode(e);
			dhx.html.addCss(t._css_button_remove,"dhx_touch");
		}
	}

The line
if(element && element.touchable && (!e.target.className || e.target.className.indexOf(“dhx_view”)!==0)){
generates “target.className” is null or not an object error.

Also, when I load any page in IE8 linking to touchui.js, the browser is minimized automatically.

Sorry for trying to fit this round peg into desktop browsers’ square hole, but these components add a beautiful aesthetic impact to my site.

if you need not touch event, just add something like

dhx.Touch.disable();

it will disable touch events layer ( so this and maybe some future errors will be avoided )

as for error in question, line

if(element && element.touchable && (!e.target.className || e.target.className.indexOf("dhx_view")!==0)){

can be updated as

var target = e.target || event.srcElement; if (element && element.touchable && (!target.className || target.className.indexOf("dhx_view")!==0)){

Thanks again.

I want to keep the touch events, that’s for sure. I’ll just put in conditional code to disable (as per your instructions) when IE is detected.