Hallo, bin ziemlicher Anfänger, habe es aber trotzdem geschafft, eine HP sowohl für Desktop als auch für kleine Geräte wie Smartphones ganz nett zu programmieren. Bei Abruf vom Smartphone aus schlägt ein JS "mobile.js" vor, zur mobilen Version zu wechseln - das klappt auch tadellos. Allerdings ist das Problem: Wenn ich den Tab dann schließe und die HP erneut aufrufe, lande ich eben doch bei der Desktop-Version. Ich vermute mal, dass das mobile.js ein Cookie setzen soll, der stets auf die mobile Version umleitet. Tatsächlich enthält das Script ja offenbar schon den Code für ein Cookie - nur irgendwas klappt da nicht. Habe ich da etwas falsch eingetragen? Kann jemand helfen?
Zweitens ist die Abfrage, ob die mobile Version aufgerufen werden soll oder nicht, eigentlich Unsinn, denn die Desktop-Version macht auf dem kleinen Bildschirm ohnehin nicht den geringsten Sinn. Wie kann ich denn den Übergang automatisch veranlassen?
Der Code lautet:
Zweitens ist die Abfrage, ob die mobile Version aufgerufen werden soll oder nicht, eigentlich Unsinn, denn die Desktop-Version macht auf dem kleinen Bildschirm ohnehin nicht den geringsten Sinn. Wie kann ich denn den Übergang automatisch veranlassen?
Der Code lautet:
HTML:
function CookieSave(name, value, days)
{
if (typeof days != 'undefined') {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
var expires = "; expires=" + date.toGMTString();
} else {
var expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}
function CookieGet(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') {
c = c.substring(1,c.length);
}
if (c.indexOf(nameEQ) == 0) {
return c.substring(nameEQ.length,c.length);
}
}
return null;
}
function mredirect(){
var mconfirm = confirm('Zur mobilen Version wechseln?');
if(mconfirm == true){
window.location.href = "www.drkukowski.de/mobile"; // Hier das Verzeichnis festlegen
}else{
// Setze Cookie um spaetere Dialoge zu vermeiden
CookieSave('NoMobile', '1', '90'); // Hier den Cookie-Namen ändern
}
}
function Client() {
}
Client.prototype.mobileClients = ["240x320","blackberry","netfront","nokia","panasonic","portalmmm","sharp","sie-","sonyericsson","symbian","windows ce","benq","mda","mot-","philips","pocket pc","sagem","samsung","sda","sgh-","vodafone","xda","iphone","android"];
Client.prototype.OperaMini = ["midp","opera mini"]
Client.prototype.isMobileClient = function(userAgent)
{
userAgent=userAgent.toLowerCase();
for (var i in this.mobileClients) {
if (userAgent.indexOf(this.mobileClients[i]) != -1) {
return true;
}
}
return false;
}
Client.prototype.isOperaMini = function(userAgent)
{
userAgent=userAgent.toLowerCase();
for (var i in this.OperaMini) {
if (userAgent.indexOf(this.OperaMini[i]) != -1) {
return true;
}
}
return false;
}
if(CookieGet('NoMobile') != 1) { // Hier den Cookie-Namen anpassen
var client = new Client();
if (client.isMobileClient(navigator.userAgent)) {
mredirect();
}
else if(client.isOperaMini(navigator.userAgent)){
document.observe('dom:loaded', mredirect);
}
Zuletzt bearbeitet von einem Moderator: