title image


Smiley "unobtrusive JavaScript": Experte gefragt
Hallo Gurus und erstmal noch ein gutes neues Jahr!



Leider habe ich von JavaScript weniger Ahnung als vom Kochen, will es aber doch einigermassen standardkonform einsetzen.



Zum einen gibt es ultra-kompakte JS, um kleine Seitenteile nachzuladen (Allgemein, Beispiel, Code ), zum andern sind Bestrebungen da, JS möglichst so im Hintergrund laufen zu lassen, dass die Seite - wenn auch möglicherweise von der Funktionalität oder Bedienungsfreundlichkeit her eingeschränkt - doch vollständig einsehbar ist (auch für Suchmaschinen ein wichtiger Faktor).



Da mir die Funktionalität der oben zitierten Mini-Skripte zu 98% für meine AJAX Bedürftnisse reicht, der dort vorgeschlagene Aufruf aber als hard-coded JavaScript folgendermassen ausschaut: <a href="javascript:jah('kevin.html','change');">kevin</a>, habe ich bisschen Gewissensbisse, diesen Code standardmässig in meine Seiten einzubauen.



Es müsste doch gehen, dass man das Script (vgl. Code oben) noch etwas abändert, so dass man die URL normal und damit suchmaschinenfreundlich eingeben kann, also zB: <a href="kevin.html" rel="jah" class="link">kevin</a> und das Skript macht die Runde durch die Seite und fügt die entsprechenden 'onclick' Funktionen hinzu. Ich habe das mal versucht, aber leider bisher ohne Erfolg.



Wäre unglaublich toll, wenn da jemand helfen könnte! Ich beisse mir schon zu lange die Zähne daran aus...



vielen Dank, unten mein Code (der "jah abschnitt" ist unverändert, da dürfte der Fehler als nicht drin sein...):



Nick







function doJahLinks() {

// define the id of your target div in the following line

var target_id = "full";

//only if we have an understanding browser

if (!document.getElementsByTagName) { return; }

var anchors = document.getElementsByTagName("a");

//look for anchor tags

for (var i=0; i < anchors.length; i++) {

var anchor = anchors[i];

if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "jah")){

anchor.onclick = function () {



jah(this.href,target_id); return false;

}





return false;

}

}

}







function jah(url,target) {

// native XMLHttpRequest object

document.getElementById(target).innerHTML = 'sending...';

if (window.XMLHttpRequest) {

req = new XMLHttpRequest();

req.onreadystatechange = function() {jahDone(target);};

req.open("GET", url, true);

req.send(null);

// IE/Windows ActiveX version

} else if (window.ActiveXObject) {

req = new ActiveXObject("Microsoft.XMLHTTP");

if (req) {

req.onreadystatechange = function() {jahDone(target);};

req.open("GET", url, true);

req.send();

}

}

}



function jahDone(target) {

// only if req is "loaded"

if (req.readyState == 4) {

// only if "OK"

if (req.status == 200) {

results = req.responseText;

document.getElementById(target).innerHTML = results;

} else {

document.getElementById(target).innerHTML="jah error:\n" +

req.statusText;

}

}

}



window.onload = doJahLinks();

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: