X-Git-Url: https://scm.cri.mines-paristech.fr/git/Plinn.git/blobdiff_plain/497dc01810e6f02731c0e13fa43a63384e9261ef..f1ca43660dc87bfce8b9838102dac0c10f4d5d31:/skins/ajax_scripts/javascript_events_api.js diff --git a/skins/ajax_scripts/javascript_events_api.js b/skins/ajax_scripts/javascript_events_api.js index 94960c0..2083018 100644 --- a/skins/ajax_scripts/javascript_events_api.js +++ b/skins/ajax_scripts/javascript_events_api.js @@ -45,6 +45,8 @@ function buildMetaFunctions() { disablePropagation = _build_disablePropagation(); getWindowWidth = _build_getWindowWidth(); getWindowHeight = _build_getWindowHeight(); + getWindowScrollX = _build_getWindowScrollX(); + getWindowScrollY = _build_getWindowScrollY(); clearSelection = _build_clearSelection(); } @@ -210,6 +212,32 @@ function _build_getWindowHeight() { } } +function _build_getWindowScrollX() { + if (window.scrollX !== undefined) { + return function(){ + return window.scrollX; + }; + } + else { + return function(){ + return document.documentElement.scrollLeft; + }; + } +} + +function _build_getWindowScrollY() { + if (window.scrollY !== undefined) { + return function(){ + return window.scrollY; + }; + } + else { + return function(){ + return document.documentElement.scrollTop; + }; + } +} + function _build_clearSelection() { if (document.selection) { return function() { @@ -227,11 +255,14 @@ buildMetaFunctions(); addListener(window, 'load', function(evt) { // html5 facade - if (!document.body.classList) { - var nop = function(){}; - var fakeDOMTokenList = {'length':0, 'item':nop, 'contains':nop, 'add':nop, 'remove':nop, 'toggle':nop}; - Element.prototype.classList = fakeDOMTokenList; + try { + if (!document.body.classList) { + var nop = function(){}; + var fakeDOMTokenList = {'length':0, 'item':nop, 'contains':nop, 'add':nop, 'remove':nop, 'toggle':nop}; + Element.prototype.classList = fakeDOMTokenList; + } } + catch (e) {} }); @@ -264,7 +295,7 @@ getCopyOfNode = function(node) { } }; -if (browser.isIE) { +if (browser.isIE7max) { _setAttribute = function(e, name, value) { // workarround IE lack of dom implementation. switch(name.toLowerCase()) { @@ -287,9 +318,10 @@ if (browser.isIE) { } }; var reCompoundPropName = /^\s*([^\-]+)\-([a-z])([a-z]+)\s*$/; - var _capitalizeCssPropName = function (s, g1, g2, g3) { // gN args match above regexp groups - if(g2) { - return g1 + g2.toUpperCase() + g3;} + var _capitalizeCssPropName = function (s) { + var g = reCompoundPropName.exec(s); + if(g) { + return g[1] + g[2].toUpperCase() + g[3];} else { return s;} };