Hallo,
ich habe ein kleines Problem. Und zwar habe ich ein Skript geschrieben, was in einem Forum einzelne Unterforen ausblendet. Nun bin ich gerade am Umschreiben und habe eine Liste der einzelnen Foren mit Checkboxen gemacht, dessen "name" dem jeweilige Namen des Forums entspricht. Nun habe ich dazu eine Speicherfunktion gebaut, die wie folgt aussieht (Set_Cookie() und Get_Cookie() sind vordefiniert und funktionieren einwandfrei):
function saveSettings() {
allForumNames = ['Forum1', 'Forum2', 'Forum3', 'Forum4', 'Forum5', 'Forum6', 'Forum7', 'Forum8', 'Forum9', 'Forum10', 'Forum11', 'Forum12', 'Forum13', 'Forum14', 'Forum15', 'Forum16', 'Forum17', 'Forum18', 'Forum19', 'Forum20', 'Forum21', 'Forum22', 'Forum23', 'Forum24', 'Forum25'];
for(var i = 0; i <= allForumNames.length-1; i++) {
if(document.getElementsByName(allForumNames[i])[0].checked == true) {
var sC = allForumNames[i];
Set_Cookie( sC, true, 365, '/', '', '' );
} else {
var sC = allForumNames[i];
Set_Cookie( sC, false, 365, '/', '', '' );
}
}
location.reload();
}
Soweit, so gut. Die Cookies werden gespeichert (nachgeprüft). Nun komme ich jedoch zu der Funktion, die das ganze wieder auslesen soll:
allForumNames = ['Forum1', 'Forum2', 'Forum3', 'Forum4', 'Forum5', 'Forum6', 'Forum7', 'Forum8', 'Forum9', 'Forum10', 'Forum11', 'Forum12', 'Forum13', 'Forum14', 'Forum15', 'Forum16', 'Forum17', 'Forum18', 'Forum19', 'Forum20', 'Forum21', 'Forum22', 'Forum23', 'Forum24', 'Forum25'];
for(var i = 0; i <= allForumNames.length-1; i++) {
var getCheck = Get_Cookie( allForumNames[i] );
alert(getCheck); // zeigt true
if(getCheck == true) {
hF(allForumNames[i]);
}
}
hF() ist die Funktion, die das Forum, nach dem jeweiligen Namen, versteckt.
Die Testausgabe zeigt, dass getCheck als true definiert ist (beim ersten durchlauf). Jedoch zeigt diese Funktion nur 4 Mal getCheck, was auch an der Schnelligkeit meines PC's liegen kann.
Wenn ich in die Funktion hF() jetzt eine alert-Ausgabe hineinsetze wird diese nicht angezeigt, obwohl getCheck beim ersten mal ja !getestet! true gezeigt hat. Die Schleife müsste jetzt also der Funktion hF die [1] des Arrays mitgeben, sprich Forum1. Da die Funktion hF jedoch garnicht ausgeführt wird (anscheinend), liegt der Fehler wohl wirklich an der Schleife über diesem Text, allerdings kann ich dort keinen Fehler entdecken. Zur Sicherheit gebe ich gleich nichtmal die Funktion hF() mit:
function Hide(elementTBody, elementTR) {
if(!Get_Cookie( 'activ' )) {
document.getElementsByClassName('page')[0].getElementsByTagName('div')[0].getElementsByTagName('table')[5].getElementsByTagName('tbody')[elementTBody].getElementsByTagName('tr')[elementTR].setAttribute('style', 'display: none;');
}
}
function hF(eV) {
alert('bla'); // wird nicht angezeigt
switch(eV) {
case 'Forum25':
Hide('5','10');
break;
case 'Forum24':
Hide('5','9');
break;
// [...]
}
}
Wo ist der Fehler? Bitte öffnet mir die Augen ;)
Grüße, Knight
ie:{ fl:) br:^ va:) ls:~ fo:| rl:( n4:& ss:| de:> js:) ch:| sh:} mo:} zu:(