123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /**
- * "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();
- })();
|