Aufgrund von mehreren Anfragen bezüglich Umleitung auf eine mobile Website habe ich mich entschlossen hier das Skript zur Verfügung zu stellen und eine Anleitung zum Einbau in WSX5.
Es bewirkt folgendes…
Wenn man am Handy die Desktopseite aufruft erfolgt die Abfrage ob man auf die mobile Version weitergeleitet werden soll oder bei Abbruch auf die zuerst eingegebene Seite kommen soll.
Wenn man ein zweites Mal die Desktopseite aufruft , dann kommt man immer gleich (ohne Abfrage) auf die mobile Seite. Die Abfrage kommt erst dann wieder, wenn man den Cache vom jeweiligen Handybrowser löscht.
NAchfolgendes Skript kopieren und in einem Texteditor reinkopieren.
- 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('Wollen Sie auf die mobile Version weitergeleitet werden?');
- if(mconfirm == true){
- window.location.href = "http://m.mobileseite.at"; // Hier das Verzeichnis oder Subdomain 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);
- }
- }
Danach die Stelle suchen wo folgener Code steht und entweder eure Subdomain oder den Verzeichnispfad angeben wo die Mobile Seite gestartet wird (index.html) z.B. "/mobile/index.html"
Variante 1:
Danach abspeichern als Datei mit der Endung "js" z.B. mobileswitch.js
Die Datei mittels FTP auf den Server spielen z.B. ins Verzeichnis "js"
Die Javaskriptdatei muss noch im WSX10 unter Allg. Einstellungen / Erweitert / Vor dem </HEAD> Tag eingebunden werden.
Variante 2:
Das ausgebesserte Skript kopieren und bei Allg. Einstellungen / Erweitert / Vor dem </HEAD> TAg gleich direkt hineinkopieren.
Dazu muss man aber noch am Anfang folgende Zeile dazu schreiben oder einfach kopieren.
Und am Schluß des Skriptes noch den schließenden Tag
</script>
Variante 3: (die einfachste)
Man kann die "mobilswitch.js" auch einfach unter "4" SEO&Code --> Erweitert ---> Hinzufügen ----automatisch einfügen (Häkchen setzen) !
Danach könnt ihr euer Projekt speichern auf den Server spielen.
Nun müsst ihr es auf eurem Smartphone ausprobieren. Es muss eine Abfrage kommen.
Alles vorausgesetzt ihr habt schon eine Mobile Version
lg Andy67