Es lag an der Cookie verwaltung des Opera. Ich habe bei dem setzen des Cookies etwas geschlampt. Eigentlich sind Cookies wie Get-Parameter Schlüssel-Werte-Paare. Ich habe zuerst einfach nur einen Wert definiert. Opera hat jedoch prompt ohne zu fragen ein "=" hinten dran gesetzt. Dann hat folgendes JavaScript zu den beschriebenen Verhalten geführt:
// ******** Zur bevorzugten Ansicht weiterleiten *******
function redirect(target) {
if (document.cookie != null && document.cookie != '' && document.cookie != location.pathname) {
location.href=target;
}
}
// ******** Cookie zur Speicherung der Ansicht setzen ********
function setCookie(path) {
var ablauf = new Date();
var delay = ablauf.getTime() + (90 * 24 * 60 * 60 * 1000);
ablauf.setTime(delay);
document.cookie = path + '; expires=' + ablauf.toGMTString() + '; path=/';
}
setCookie wird beim Klick auf die Ansicht gesetzt, redirect beim Laden der Seite ausgeführt.
Eine Abänderung des JavaSripts in folgendes hat dann das Problem behoben. Bzw. ich hab mich einfach mehr um das Cookie gekümmert.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// ******** Zur bevorzugten Ansicht weiterleiten *******
function redirect(target) {
if (document.cookie != null && document.cookie != '') {
var keeks = new Array();
keeks = document.cookie.split(";");
for (var i=0;i<=keeks.length;i++) {
var paerchen = new Array();
paerchen = keeks[i].split("=");
if (paerchen[0].search("view") == -1) {
continue;
}
if (paerchen[1] == location.pathname) {
continue;
}
location.href=target;
break;
}
}
}
// ******** Cookie zur Speicherung der Ansicht setzen ********
function setCookie(path) {
var ablauf = new Date();
var delay = ablauf.getTime() + (90 * 24 * 60 * 60 * 1000);
ablauf.setTime(delay);
document.cookie = 'view=' + path + '; expires=' + ablauf.toGMTString() + '; path=/';
}
War das die Erklärung die du dir vorgestellt hattest?
Gruß Alex