/** * "Yet Another Multicolumn Layout" - YAML CSS Framework * * (en) Workaround for IE8 und Webkit browsers to fix focus problems when using skiplinks * (de) Workaround für IE8 und Webkit browser, um den Focus zu korrigieren, bei Verwendung von Skiplinks * * @note inspired by Paul Ratcliffe's article * http://www.communis.co.uk/blog/2009-06-02-skip-links-chrome-safari-and-added-wai-aria * Many thanks to Mathias Schäfer (http://molily.de/) for his code improvements * * @copyright Copyright 2005-2012, Dirk Jesse * @license CC-BY 2.0 (http://creativecommons.org/licenses/by/2.0/), * YAML-CDL (http://www.yaml.de/license.html) * @link http://www.yaml.de * @package yaml * @version 4.0+ * @revision $Revision: 617 $ * @lastmodified $Date: 2012-01-05 23:56:54 +0100 (Do, 05 Jan 2012) $ */ (function () { var YAML_focusFix = { skipClass : 'ym-skip', init : function () { var userAgent = navigator.userAgent.toLowerCase(); var is_webkit = userAgent.indexOf('webkit') > -1; var is_ie = userAgent.indexOf('msie') > -1; if (is_webkit || is_ie) { var body = document.body, handler = YAML_focusFix.click; if (body.addEventListener) { body.addEventListener('click', handler, false); } else if (body.attachEvent) { body.attachEvent('onclick', handler); } } }, trim : function (str) { return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); }, click : function (e) { e = e || window.event; var target = e.target || e.srcElement; var a = target.className.split(' '); for (var i=0; i < a.length; i++) { var cls = YAML_focusFix.trim(a[i]); if ( cls === YAML_focusFix.skipClass) { YAML_focusFix.focus(target); break; } } }, focus : function (link) { if (link.href) { var href = link.href, id = href.substr(href.indexOf('#') + 1), target = document.getElementById(id); if (target) { target.setAttribute("tabindex", "-1"); target.focus(); } } } }; YAML_focusFix.init(); })();