Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PreventDefault alternative for IE8

Situation: Trying to modify VideoJS.com in order to work with IE8 and Youtube Chromeless API.

Problem: Progressbar dragging doesn't work (error on event.preventDefault(); 'not supported' according to debug)

Demo: http://alpha.dealertouch.mobi/video/demo.html

What I tried: Skip 'preventDefault' when it's IE, but if I do that I'll lose the functionality of the progressbar (drag/click forward and backward)

Question: What is the best way to solve this problem for IE8?

like image 266
MeProtozoan Avatar asked Dec 12 '10 14:12

MeProtozoan


3 Answers

I use something like:

(event.preventDefault) ? event.preventDefault() : event.returnValue = false; 

the event.returnValue property is the closest IE equivalent to preventDefault.

Using

return false;

can sometimes also work, but it can lead to unexpected behavior sometimes when mixed with e.g. jQuery (jQuery also does stopPropagation...which is usually what you want, but...), so I prefer not to rely on it.

like image 196
Kevin Horn Avatar answered Nov 17 '22 17:11

Kevin Horn


IE8 does not support preventDefault; it has returnValue instead. jQuery should normalize that for you, though. Are you sure you are calling preventDefault on the jQuery event wrapper (and not the actual event object)?

like image 43
Tgr Avatar answered Nov 17 '22 17:11

Tgr


Just use

return false;

it's cross browser and has the same purpose as event.preventDefault();

THe same instruction in jQuery is slightly different, it includes also stopPropagation().

like image 1
sebarmeli Avatar answered Nov 17 '22 16:11

sebarmeli