MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Planet 3DNow! Distributed Computing Wiki
Zur Navigation springen Zur Suche springen
(Implementierung des AJAX-Codes; zum Testen wird teilweise auf den AJAX-Code von vBulletin zurückgegriffen)
 
(67 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
 
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
  
  // ============================================================
+
  /*var userAgent = navigator.userAgent.toLowerCase();
// BEGIN Event Hooking
+
  var ua_webtv = (userAgent.indexOf('webtv') != -1);
function HookEvent(hookName, hookFunction)
+
  var ua_safari = ((userAgent.indexOf('applewebkit') != -1) || (navigator.vendor == 'Apple Computer, Inc.'));
{
+
  var ua_opera = ((userAgent.indexOf('opera') != -1) || (typeof(window.opera) != 'undefined'));
  if(window.addEventListener) {
+
  var ua_iexplorer = ((userAgent.indexOf('msie') != -1) && (!ua_opera) && (!ua_safari) && (!ua_webtv));
    window.addEventListener(hookName, hookFunction, false);
+
  var ua_iexplorer7 = ((ua_iexplorer) && (userAgent.indexOf('msie 7.') != -1));*/
  } else if(window.attachEvent) {
 
    window.attachEvent("on" + hookName, hookFunction);
 
  }
 
}
 
// END Event Hooking
 
// ============================================================
 
 
// ============================================================
 
// BEGIN Dynamic Navigation Bars
 
 
var strNavigationBarHide = "Einklappen";
 
var strNavigationBarShow = "Ausklappen";
 
 
  var navigationBarShowDefault = 0;
 
 
// shows and hides content and picture (if available) of navigation bars
 
// Parameters:
 
//    indexNavigationBar: the index of navigation bar to be toggled
 
function ToggleNavigationBar(indexNavigationBar)
 
  {
 
    var naviToggle = document.getElementById("dcw_navitoggle" + indexNavigationBar);
 
    var naviFrame = document.getElementById("dcw_naviframe" + indexNavigationBar);
 
 
    if(!naviFrame || !naviToggle) {
 
        return false;
 
    }
 
   
 
    // if shown now
 
    if(naviToggle.firstChild.data == strNavigationBarHide) {
 
        for(var naviChild = naviFrame.firstChild; naviChild != null; naviChild = naviChild.nextSibling) {
 
            if(naviChild.className == "dcw_navipicture") {
 
                naviChild.style.display = "none";
 
            }
 
            if(naviChild.className == "dcw_navicontent") {
 
                naviChild.style.display = "none";
 
            }
 
            if(naviChild.className == "dcw_navitoggle") {
 
                naviChild.firstChild.data = strNavigationBarShow;
 
            }
 
        }
 
 
    // if hidden now
 
    } else if(naviToggle.firstChild.data == strNavigationBarShow) {
 
        for(var naviChild = naviFrame.firstChild; naviChild != null; naviChild = naviChild.nextSibling) {
 
            if(naviChild.className == "dcw_navipicture") {
 
                naviChild.style.display = "block";
 
            }
 
            if(naviChild.className == "dcw_navicontent") {
 
                naviChild.style.display = "block";
 
            }
 
            if(naviChild.className == "dcw_navitoggle") {
 
                naviChild.firstChild.data = strNavigationBarHide;
 
            }
 
        }
 
    }
 
}
 
 
  // adds show/hide-button to navigation bars
 
function CreateNavigationBarToggleButton()
 
{
 
    var indexNavigationBar = 0;
 
    // iterate over all < div >-elements
 
    for(var i = 0; naviFrame = document.getElementsByTagName("div")[i]; ++i) {
 
        // if found a navigation bar
 
        if(naviFrame.className == "dcw_naviframe") {
 
            ++indexNavigationBar;
 
            var naviToggle = document.createElement("a");
 
            naviToggle.className = "dcw_navitoggle";
 
            naviToggle.setAttribute("id", "dcw_navitoggle" + indexNavigationBar);
 
            naviToggle.setAttribute("href", "javascript:ToggleNavigationBar(" + indexNavigationBar + ");");
 
 
            var naviToggleText = document.createTextNode(strNavigationBarHide);
 
            naviToggle.appendChild(naviToggleText);
 
 
            // add naviToggle-Button as first div-element
 
            // in < div class="dcw_naviframe" >
 
            naviFrame.insertBefore(naviToggle, naviFrame.firstChild);
 
            naviFrame.setAttribute("id", "dcw_naviframe" + indexNavigationBar);
 
        }
 
    }
 
    // if more navigation bars found than default: hide all
 
    if(navigationBarShowDefault < indexNavigationBar) {
 
        for(var i = 1; i <= indexNavigationBar; ++i) {
 
            ToggleNavigationBar(i);
 
        }
 
    }
 
}
 
 
HookEvent("load", CreateNavigationBarToggleButton);
 
 
// END Dynamic Navigation Bars
 
// ============================================================
 
 
 
// ============================================================
 
// BEGIN AJAX Teamstatistiken
 
 
  var dcw_TeamStatsLoader = null;
 
 
function TeamStatsLoader(statsSpan, project)
 
{
 
    alert(project);
 
    this.statsSpan = statsSpan;
 
    this.project = project;
 
 
    this.xml_sender = null;
 
    this.teamPosition = '';
 
 
    var me = this;
 
 
    this.OnLoadReadyStateChange = function()
 
    {
 
        if(me.xml_sender.handler.readyState == 4 && me.xml_sender.handler.status == 200) {
 
            if(me.xml_sender.handler.responseXML) {
 
                me.teamPosition = me.xml_sender.fetch_data(fetch_tags(me.xml_sender.handler.responseXML, 'prefixeslist')[0]);
 
            }
 
 
            if(is_ie) {
 
                me.xml_sender.handler.abort();
 
            }
 
   
 
            var textNode = document.createTextNode(me.teamPosition);
 
            me.statsSpan.appendChild(textNode);
 
        }
 
    }
 
 
    this.xml_sender = new vB_AJAX_Handler(true);
 
    this.xml_sender.onreadystatechange(this.OnLoadReadyStateChange);
 
    this.xml_sender.send('http://www.planet3dnow.de/vbulletin/ajax.php?do=listprefixes&t=' + 312464, 'do=listprefixes&t=' + 312464);
 
    alert(this.xml_sender);
 
}
 
 
function LoadTeamStats()
 
{
 
    // iterate over all < span >-elements
 
    for(var i = 0; statsSpan = document.getElementsByTagName("span")[i]; ++i) {
 
        if(statsSpan.className == "dcw_span_teamstats") {
 
          var friendlyProjectName = statsSpan.id.replace(/.40/g, "@");
 
 
          dcw_TeamStatsLoader = new TeamStatsLoader(statsSpan, friendlyProjectName);
 
        }
 
    }
 
}
 
 
HookEvent("load", LoadTeamStats);
 
 
// END AJAX Teamstatistiken
 
// ============================================================
 

Aktuelle Version vom 27. September 2014, 22:53 Uhr

/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */

 /*var userAgent = navigator.userAgent.toLowerCase();
 var ua_webtv  = (userAgent.indexOf('webtv') != -1);
 var ua_safari = ((userAgent.indexOf('applewebkit') != -1) || (navigator.vendor == 'Apple Computer, Inc.'));
 var ua_opera = ((userAgent.indexOf('opera') != -1) || (typeof(window.opera) != 'undefined'));
 var ua_iexplorer = ((userAgent.indexOf('msie') != -1) && (!ua_opera) && (!ua_safari) && (!ua_webtv));
 var ua_iexplorer7 = ((ua_iexplorer) && (userAgent.indexOf('msie 7.') != -1));*/