Chrizo
Neues Mitglied
Hey ich hab hier in diesem Forum ein Code snippet gefunden der wirklich sehr hilfreich war, doch der Code beinhaltete noch einen großen Fehler.
Nämlich das, dass get.ElementByClass nicht im Internet Explorer erkannt wird.
Ich bitte hier um Hilfe da ich das Problem nicht alleine bewerkstelligen kann.
Vielen Danke im vorraus.
Nämlich das, dass get.ElementByClass nicht im Internet Explorer erkannt wird.
Ich bitte hier um Hilfe da ich das Problem nicht alleine bewerkstelligen kann.
Vielen Danke im vorraus.
Code:
function HideSpoilers( ) {
var spoilers = document.getElementsByClassName( "spoiler" );
for( var i = 0; i < spoilers.length; i++ ) {
spoilers[ i ].style.display = "none";
}
}
function PrepareSpoilerButtons( ) {
// IE ist mal wieder böse und übergibt als this nicht das element, sondern
// window... Da musst du dir selbst was überlegen, hab gerade keine Lust mehr.
var SpoilerButtons = document.getElementsByClassName( "BtnSpoiler" );
for( var i = 0; i < SpoilerButtons.length; i++ ) {
if( document.attachEvent ) {
SpoilerButtons[ i ].attachEvent( "onclick", ShowSingleSpoiler );
} else {
SpoilerButtons[ i ].addEventListener( "click", ShowSingleSpoiler, true );
}
}
}
function ShowSingleSpoiler( ) {
HideSpoilers( );
this.nextSibling.nextSibling.style.display = "block";
}
if( !document.getElementsByClassName ) { // IE kennt die Funktion nicht...
document.getElementsByClassName = function( className ) {
var all = document.getElementsByTagName( "*" ), ret = [];
for( var i = 0; i < all.length; i++ ) {
if( all[ i ].className === className )
ret.push( all[ i ] );
}
return ret;
};
}
if( document.attachEvent ) {
window.attachEvent( "onload", HideSpoilers );
window.attachEvent( "onload", PrepareSpoilerButtons );
} else {
window.addEventListener( "load", HideSpoilers, true );
window.addEventListener( "load", PrepareSpoilerButtons, true );
}