| (Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI... |
Diskussion: setAttribute() im IE im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Heyho ich hab für meine neue website mit ajax gearbeitet. http://beta.verfriemelt.org/ dazu ne kleine js function geschrieben, was einfach ...
![]() |
| | #1 (permalink) |
| Member of Honour ![]() | setAttribute() im IE Anzeige Heyho ich hab für meine neue website mit ajax gearbeitet. http://beta.verfriemelt.org/ dazu ne kleine js function geschrieben, was einfach alle normalen links umarbeitet: Code: function replaceLinks() {
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
href = links[i].href;
if (href.substring(href.length,href.length-1) != "#") {
links[i].setAttribute("onclick","sndReq('"+ href +"')");
links[i].href = "#";
}
}
} der kommt mit dem setAttribute nicht klar. wie bekomm ich es hin, ähnlichen effekt auch für den IE zu bauen? habs geschafft... ;D Code: function replaceLinks() {
var name = navigator.userAgent.toLowerCase();
//InternetExplorer
var ie = (name.indexOf("msie") > -1);
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
var href = links[i].href;
if (href.substring(href.length,href.length-1) != "#" && href.substring(0,10) != "javascript") {
if (ie) {
links[i].href = "javascript:sndReq('" + href + "')";
} else {
links[i].setAttribute("onclick","sndReq('"+ href +"')"); //geht im IE nich
links[i].href = "#";
}
}
}
}
__________________ » Flattr mich! - Wenn dir mein Beitrag geholfen hat! « <| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |> |
| | |
| | #2 (permalink) |
| Registriert seit: 14.04.06 ![]() Likes: 4 | Deine MSIE-Variante müsste doch eigentlich für alle Browser funktionieren, oder? Wenn ja könntest du dir ein wenig Code sparen |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Member of Honour ![]() | joar, die geht auch mit den anderen, aber ich find die onClick version einfach sauberer
__________________ » Flattr mich! - Wenn dir mein Beitrag geholfen hat! « <| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |> |
| | |
| | #4 (permalink) |
| Registriert seit: 17.03.04 ![]() Likes: 2 | Du könntest das ganze aber auch noch anders machen, und zwar so: Code:
links[i].onclick = function() { sendReq(href); };
__________________ Mfg Basic Avid - Use it or be used! - |
| | |
| | #5 (permalink) |
| Member of Honour ![]() | seltsam, genau das hatte ich probiert, aber das ging bei mir nirgendswo. vielleicht habsch da was vertippt oder so! aber gut zu wissen, dass das auch geht.
__________________ » Flattr mich! - Wenn dir mein Beitrag geholfen hat! « <| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |> |
| | |
| | #6 (permalink) |
| Registriert seit: 16.06.08 ![]() Likes: 0 | Events sind eigentlich auch keine Attribute. Für diese gibt es beim IE attachEvent und sonst addEventListener. |
| | |
| | #7 (permalink) |
| Ich verwende immer folgende Javascript-Funktion zum Anhängen von Events. Sie soll angeblich in allen wesentlichen Browsern funktionieren. Lässt sich also auch komplett in eine unabhängige Javascript-Datei auslagern, ohne Javascript in den HTML-Quelltext schreiben zu müssen. Code: function addEvent(obj, evType, fn){
if (obj.addEventListener){
obj.addEventListener(evType, fn, false);
return true;
} else if (obj.attachEvent){
var r = obj.attachEvent("on"+evType, fn);
return r;
} else {
return false;
}
}
addEvent(window, 'load', myFunction);
__________________ Wenn keiner zuschaut, teile ich heimlich durch Null! Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter | |
| | |
| | #8 (permalink) |
| Registriert seit: 16.06.08 ![]() Likes: 0 | Du könntest die Version von Metax sogar noch etwas erweitern indem du folgende etwas abgeänderte Version benutzt (bei neuen Browsern spielt es keine Rolle, aber bei den uralten schon noch): Code: function addEvent(obj, type, fn){
if(obj.addEventListener){
obj.addEventListener(type, fn, false);
}else if (obj.attachEvent){
obj["e_" + type + "_" + fn] = fn;
obj[type + fn] = function(){
obj["e_" + type + "_" + fn](window.event);
}
obj.attachEvent( "on" + type, obj[type + fn] );
}else if(!(obj["on" + type] = fn)){
return false;
}
return true;
}
function removeEvent(obj, type, fn){
if(obj.removeEventListener){
obj.removeEventListener(type, fn, false);
}else if(obj.detachEvent){
obj.detachEvent("on" + type, obj[type + fn]);
obj[type + fn] = null;
obj["e_" + type + "_" + fn] = null;
}else if(obj["on" + type]){
obj["on" + type] = null;
}else{
return false;
}
return true;
} |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |