Umleitung auf Mobile Seite mit Bestätigung

UPDATE
Ich habe das Script etwas umgebaut und ein kleines Plugin geschrieben. Das Ganze findet ihr in meinem Github Account.
https://github.com/andreknieriem/redirect


Immer mehr Menschen gehen mit ihren Smartphones ins Internet. Oft ist es von Vorteil eine optimierte Seite für diese Geräte anzufertigen.

Um dem User mehr Komfort zu bieten, sollte man ihn vorher fragen, ob er denn überhaupt das mobile Angebot
nutzen möchte, da die optimierten Seiten zum Teil stark abgespeckt sind und nicht den vollen Funktions- und Informationsumfang haben.
Damit der User nicht jedes Mal wieder klicken muss, auf welche Seite er gerne möchte, wird ein Cookie gesetzt,
der die Einstellung speichert und einem gleich die richtige Seite verlinkt.

Falls der User doch irgendwann wieder die mobile oder normale Seite benutzen möchte,
sollte man auf die jeweilige Seite einen Link setzen.

Diese Umleitung basiert komplett auf Javascript ohne irgendeine Bibliothek wie jQuery, Dojo oder Sonstiges.

Am einfachsten ist es den kompletten Code hier zu kopieren, den Pfad zur mobilen Seite anzupassen,
sowie den Namen des Cookies.

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 = mversion; // 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","iemobile","windows phone"];

    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);
            }
        }

Alles in allem macht die Funktion folgendes:
1. gucken ob es einen Cookie gibt
2. wenn ja, dann wird entweder auf die mobile Seite verlinkt (oder nicht, je nach Voreinstellung)
3. wenn nicht, dann wird geguckt, ob man mit einem mobilen Gerät die Seite besucht
4. wenn dies der Fall ist, dann wird nachgefragt, ob man die mobile Seite besuchen möchte
5. wenn ja, dann gehe auf die mobile Seite und erstelle einen Cookie
6. wenn nicht, dann bleibe auf der vollen Seite und erstelle einen Cookie

Das war auch schon alles.

Wie man am besten Mobile-Seiten erstellt, erkläre ich vielleicht noch einmal später.

177 Kommentare bei “Umleitung auf Mobile Seite mit Bestätigung

  1. leon sagt:

    Bei mir kommt die nachricht: javascript ist beschädigt…!

    was muss ich machen?

    und wo muss ich hier (http://www.t-newsletter.ch/) meine website einsetzten?:

    if(mconfirm == true){
    window.location.href = mversion; // Hier das Verzeichnis festlegen

    30. Juli 2011 um 12:06
  2. Hi Leon. Der Fehler sollte nicht kommen. Hast du schon was verändert gehabt?

    Also deine mobile Seite musst du so eintragen:

    window.location.href = „/mobile“;

    Das heißt er geht in das Verzeichnis „mobile“. Wie ist denn die Domain zur mobilen Seite?

    Ansonsten ca so:
    window.location.href = „http://www.t-newsletter.ch/“;

    Hoffe ich konnte dir weiterhelfen ;)

    30. Juli 2011 um 15:03
    1. dennis sagt:

      hi andré,

      bei mir kommt leider keine abfrage auf dem iphone 4s, hab den code ab komplett übernommen.

      das ist doch javascript sollte also in stinknormalen html seiten funktionieren oder?

      kannst du mir ne email geben wo ich die domain mal hinschicken kann möchte die hier nicht abrufbar machen?

      15. Juni 2013 um 9:56
  3. Hi, vielen Dank für die tolle Anleitung. Du schreibst ganz unten: „Wie man am besten Mobile-Seiten erstellt, erkläre ich vielleicht noch einmal später.“ Hast du dazu schon was geschrieben? Würd mich interessieren? Danke.

    17. August 2011 um 9:18
    1. Hi Barbara, ich habe dazu noch nichts geschrieben, allerdings kann ich dir bestimmt einiges erklären. Entweder man baut alles komplett selbst, oder man auch mobile Frameworks verwenden. Ein wirklich schönes und sehr gutes ist zum Beispiel http://jqtouch.com/. Für weitere Rückfragen stehe ich dir sehr gerne zu Verfügung!

      17. August 2011 um 11:25
  4. Ben sagt:

    Sehr geehrter Herr André Knieriem,

    vielen Dank für diesen Beitrag, das war sehr hilfreich und funktioniert super! Haben Sie (oder jemand anderes) eine Idee bzw. einen Link zu einer Seite in der steht, wie man das Script erfolgreich für Android Smartphones erweitern kann?

    LG Ben

    27. Dezember 2011 um 17:10
    1. Hi Ben,

      Frohes Neues erst einmal ;)

      Also eigentlich müssten auch Android Smartphone umgeleitet werden. Im Code steht

      Client.prototype.mobileClients = [„240×320″,“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“];

      und somit auch android und eine Weiterleitung sollte stattfinden. Ich habe leider kein Android Gerät und kann es deshalb nicht testen.

      4. Januar 2012 um 19:41
  5. Lilo3 sagt:

    Hallo,
    ich habe gerade den code als mobil.js gespeichert und in mein Verzeichnis assets kopiert und anschließend die Seite mit dem Emulator „IPhony“ getestet. Pfad hab ich auch geändert, aber den Cookie Namen nicht. Da ich nicht weiss welchen Namen ich verwenden soll.

    Leider tut sich da nix, an was kann das liegen?

    4. Januar 2012 um 11:45
    1. Hi Lilo3
      ich meine, dass der Emulator NICHT den User Agent des iPhones mitsendet und somit als Firefox oder soetwas erkannt wird und das Script deshalb nicht eingreift. Wenn du Firefox benutzt, kann ich dir noch den User Agent Switcher als Addon empfehlen. Dort kannste einfach iPhone auswählen und du siehst, was passiert wenn man als iPhone auf deine Seite kommt.

      4. Januar 2012 um 19:48
  6. Finn sagt:

    Mag vielleicht eine blöde Frage sien, aber:
    Wie muss ich die Datei nennen und wohin muss ich sie auf meinem FTP Server speichern, damit es bei WordPress funktioniert?

    Danke!

    11. Januar 2012 um 17:56
    1. Du nennst die Datei wie du willst, zum Beispiel: checkdevice.js Diese legst du in das Verzeichnis deines Templates. Also wp-content/themes/deintemplate

      Danach die Datei einbinden in den header deiner Seite. Meist header.php.
      Dort dann

      Das sollte alles sein;)

      Sry für die späte Antwort, bekomme so viel Spam, dass die richtigen Kommentar oftmals untergehen…

      1. März 2012 um 15:47
  7. Daniel sagt:

    Hey ;)

    Bei mir funktioniert es nur teilweise.
    Wenn ich auf den Button okay klicke, dann werde ich trotzdem auf die normale Webseite geleitet.

    Woran liegt das? Dateipfad stimmt.

    12. März 2012 um 21:25
  8. Steffen sagt:

    Hallo,

    herzlichen Dank! Funktioniert einwandfrei.

    Gruß
    Steffen

    19. April 2012 um 7:21
  9. Ben sagt:

    Hallo Herr Knieriem,

    Danke sehr. Funktioniert super!

    30. April 2012 um 21:33
  10. Doni sagt:

    Hey :)

    Kann ich dich um Hilfe bitten? Bei mir funktioniert gar nichts.. Ich habe die .js erstellt (mobile.js), deinen code reinkopiert und die zieladresse editiert.. dann auf meiner index seite die datei mit aufgerufen.. das ganze aud meinen ftp geschoben.. nichts.. mit android und iphone auf meine seite.. es passiert einfach nichts ^^… hast du eine idee, wo ich den fehler mache?..

    Grüsse Don

    8. Mai 2012 um 7:16
    1. Klar, sag mir deine Url und wir gucken mal.

      8. Mai 2012 um 8:20
  11. Stevie sagt:

    Moin,
    funzt leider überhaupt nicht.

    Gruss

    15. Mai 2012 um 7:29
    1. Was funktioniert denn nicht? Also es funzt auf jeden Fall und auch bei Allen. Vielleicht ist einfach iwo ausversehen was falsch eingebunden.

      15. Mai 2012 um 17:52
  12. SUPER Danke, hat alles perfekt geklappt!

    20. Juni 2012 um 8:26
    1. Das freut mich ;)

      21. Juni 2012 um 15:17
  13. tty sagt:

    Vielen Dank, klappt super.
    für die WP7 Phones sollte der string Client.prototype.mobileClients = [„240×320“,“windows phone“… aber erweitert werden.

    wie müsste der CookieSave aussehen, wenn es nur ein Session Cookie werden soll ??

    Thanx tty

    25. Juni 2012 um 19:00
    1. Hey vielen Dank für die Erweiterung :) Wenn das passieren soll, sollteste hier:
      // Setze Cookie um spaetere Dialoge zu vermeiden
      CookieSave(‚NoMobile‘, ‚1‘, ’90‘); // Hier den Cookie-Namen ändern den 2ten Wert auf 0 setzen. Dann gilt es nur so lange bis der Browser geschlossen wird.

      26. Juni 2012 um 15:05
  14. Hallo Herr Knieriem!
    Ja, vielen Dank auch von mir. Ich konnte relativ schnell ein einfaches mobiles Layout erstellen, das dank Ihrer Hilfe jetzt dem Benutzer die Wahl lässt, welche Version er sehen will. Selbst habe ich mich schon oft geärgert, mit dem Tablet auf eine völlig ungeeignete Mobil-Seite umgeleitet zu werden, wo doch die Standardseite auf dem Tablet um Längen besser bedienbar war und auch besser aussah.

    Freundliche Grüße Klaus Tröger

    23. August 2012 um 21:57
    1. Hallo Herr Tröger,

      schön, dass ich Ihnen mit dem Script helfen konnte. Falls es noch Fragen gibt, dann fragen Sie ;)

      24. August 2012 um 7:24
  15. Helmut sagt:

    Hallo, ich versuche auch eine Weiterleitung von meiner Seite http://waveswebdesign.de
    auf:
    http://waveswebdesign.de/m.waveswebdesign.de
    oder alternativ auf:
    http://waveswebdesign.de/Joomla-2.5-Core
    zu installieren. Bisher beides leider erfolglos.
    Wenn ich die angepasste Datei checkdvise.js (hochgeladen in den Template Ordner) einbinde in die
    index.php mit wird nicht mehr angezeigt. Was mache ich falsch ? Vielen Dank für verständliche Tipps.
    Helmut

    1. Oktober 2012 um 9:19
  16. Hey Helmut, ich habe nicht ganz verstanden, was du getan hast. Also du musst in -Teil der Seite dein JS einladen. Danach sollte eine Nachricht auf dem Gerät erscheinen, ob du wechseln willst oder nicht. Hast du dies einmal bestätigt, oder abgelehnt wird ein Cookie angelegt der das Ganze für ich 90 Tage speichert. Wenn du die Meldung also wieder haben möchtest musst du deine Cookie ändern, oder der Funktion Cookie Save eine 0 anstelle einer 90 übermitteln.

    window.location.href = ‚http://waveswebdesign.de/m.waveswebdesign.de‘;

    Sollte bei dir gehen. Nicht die “ oder „“ vergessen!

    1. Oktober 2012 um 9:39
    1. Helmut sagt:

      Hallo Andrè, vielen Dank für die schnelle Antwort. Also in die Datei checkdevice.js habe ich eingebunden:
      function mredirect(){
      var mconfirm = confirm(‚Wollen Sie auf die mobile Version weitergeleitet werden?‘);
      if(mconfirm == true){
      window.location.href = http://waveswebdesign.de/m.waveswebdesign.de; // Hier das Verzeichnis festlegen
      }else{
      // Setze Cookie um spaetere Dialoge zu vermeiden
      CookieSave(‚iphone‘, ‚1‘, ’90‘); // Hier den Cookie-Namen ändern
      }
      }
      und in das Template hochgeladen. Ich meine gelesen zu haben diese Datei noch einzubinden? Aber wie und wo binde ich diese ein?
      Eingebunden in die index.php mit:

      erzeugt Error
      Gruß Helmut

      1. Oktober 2012 um 11:07
  17. Hey Helmut, die Datei bindest du so ein: am besten vor das schließende header Tag (). Du hast deine Href ohne “ bzw „“ angegeben. Bitte so: window.location.href = ‚http://waveswebdesign.de/m.waveswebdesign.de‘;

    Dann sollte es klappen

    1. Oktober 2012 um 11:31
  18. Helmut sagt:

    Hallo Andrè, ich stehe leider immer noch auf der Leitung :-(
    Den gezeigten Fehler habe ich berichtigt:
    ………..
    function mredirect(){
    var mconfirm = confirm(‚Wollen Sie auf die mobile Version weitergeleitet werden?‘);
    if(mconfirm == true){
    window.location.href = ‘http://waveswebdesign.de/m.waveswebdesign.de’; // Hier das Verzeichnis festlegen
    }else{
    // Setze Cookie um spaetere Dialoge zu vermeiden
    CookieSave(‚iphone‘, ‚1‘, ’90‘); // Hier den Cookie-Namen ändern
    }
    }
    ……………
    Aber wenn ich, so wie es verstanden habe, die Datei checkdevice.js in dem Template vor den schließenden header tag () einstelle, kommt der ganze Text im iphonetester.com/
    Möglicherweise verstehe ich doch einige Vorgaben noch nicht.
    Helmut

    1. Oktober 2012 um 12:10
  19. Helmut sagt:

    Hallo Andrè, ich verwende den http://iphonetester.com/
    Möglicherweise ist dieser nicht geeignet? Ich versuche mal von einem richtigen Gerät testen zu lassen. Bin mal auf das Egebnis gespannt. Melde mich.
    Helmut

    1. Oktober 2012 um 13:31
  20. Helmut sagt:

    Hallo Andrè, dank Deiner Vorgaben und Hilfestellungen ist es mir gelungen eine automatische Weiterleitung einzurichten.
    Die Basisseite: http://waveswebdesign.de aufgerufen mit iPhone werden auf meine mobilfähige Joomla Seite Version weiter geleitet. Der User bekommt die Möglichkeit angezeigt zu wählen zwischen die „normale“ Seite anzeigen oder die Mobil Seite anzeigen. Die Einstellung kann man nachvollziehen über den Quelltext der Basisseite und der dort verlinkten Datei „checkdevice.js“. In dieser steht Dein angepasster Vorschlag.
    Vielen Dank für Deine Unterstüzung,
    Helmut

    3. Oktober 2012 um 7:17
    1. Hey Helmut, das freut mich sehr!

      9. Oktober 2012 um 7:03
  21. Peterh sagt:

    Hallo André, ich finde das Tool klasse. bisher habe ich eines genutzt, das nur iphone umleitete, und mir fehlte immer die Option nicht beschränkt zu sein.
    Ich habe ein Poblem, es eght um die weiterleitung. Ich nutzte ein CMS, das mir sie Möglichkeit gibt eine Martketing url (also kein verzeichnis) zu erstellen, womit ich die „mobilen“ htmls erreiche. jetzt stellt mir das Skript immer wieder die Frage „Wollen Sie…“ klicke ich auf „ja“ kommt wieder die Frage, klicke ich auf nein, leitet er mich auf die Seite auf die ich mobil leiten will. Wenn ich als weiterleitnug „Google “ oder zb. meine „WWW.Webhope.de“ eintrage, dann läuft es. kannst du mir helfen?

    24. Oktober 2012 um 22:28
  22. Hi Peter, ich weiß nicht genau, was du mit Martketing url meinst? Meinst du eine URL die so aussieht? http://www.domain.de/test/test/die-ist-die-url und die seiten liegen natürlich nicht in dem ordner test? Es müsste eigentlich ein Cookie gespeichert werden für die Domain generell und nicht eine URL. Also müsste der Cookie gesetzt werden und somit die Frage für die nächsten 90 Tage nicht auftauchen. Vielleicht kann ich mir ja mal deine Seite ansehen?

    LG

    26. Oktober 2012 um 6:35
    1. PeterH sagt:

      Hall André,
      Ja so sieht die URL aus. Das CMS gibt mir die Möglichkeit, nach „.de/“ einen Namen zu kreieren, wie beispielsweise „test“ also „domain.de/test“ und bietet mir an, diese auf eine Inhaltsseite, eine Menubutton oder auf eine ext. URL weiter zu leiten. Somit erstelle ich keinen Ordner. Natürlich kannst du dir alles ansehen. oder wir können gern auch telefonieren um die Fragen direkt zu beantworten wenn du magst. Danke Peter

      26. Oktober 2012 um 13:51
  23. Christian sagt:

    Super Erklärung. Ich habe nur noch einige Probleme. Die Einbindung des Scrips habe ich erledigt mit

    Die Abfrage erfolgt auch und alles funktioniert.
    Nur die Weiterleitung funktioniert nicht so ganz da die mobile Seite nicht komplett neu geladen wird sondern im Hauptframe angezeigt wird.
    Meine Seite besteht aus mehreren Frames. Den Hauptframe, Navi- und Kopfframe. Welchen Code muss verwenden das er die mobile Seite neu lädt?

    21. November 2012 um 19:57
    1. Christian sagt:

      also ich meinte

      21. November 2012 um 20:00
  24. Christian sagt:

    script src=“mobile.js“ type=“text/javascript“></script

    21. November 2012 um 20:01
  25. Hi Christian, schön dass dir der Code und die Anleitung gefällt. Nun zu deinem Problem. das Script sollte möglichst weit in Head-Bereich packen, da sonst erst die komplette Seite geladen und dann erst umgeleitet wird. Also irgendwo vor

    Was meinst du denn mit Hauptframe und nur da neu geladen?

    Ansonsten geht das glaube ich mit JS so parent.framename.location=URL;

    Also sagste bei framename den namen deines Haupframes und URL ist die Url welche geladen werden soll.

    Also sowas:
    parent.hauptframe.location=’/mobile.html‘

    22. November 2012 um 7:27
  26. Christian sagt:

    na die weiterleitung sollte auf eine WebApp-Seite erfolgen.
    Die Frames sind so aufgebaut
    „frameset rows=“*“ cols=“153,*“ framespacing=“0″ frameborder=“NO“ border=“0″ bordercolor=“#666666″>

    </html"

    Das script hatte ich direkt oben in der ersten Zeile eingefügt. Aber leider ohne erfolg. Es wird nur im Hauptframe geladen. Die Homepage ist http://www.feuerwehr-bad-duerrenberg.de falls du dir die struktur mal ansehen willst.

    22. November 2012 um 18:53
    1. Hey, ich verstehe nicht ganz, was das Problem ist :P Du brauchst ne mobile Seite in einer anderen Domain, Orndner. Dort verlinkst du einfach hin. Da sind Framesets auch egal ;)

      26. November 2012 um 8:08
  27. Bernd sagt:

    Hallo André,

    darf ich André sagen? Habe dein Script eingebunden und mit Hilfe der Kommentare hat es geklappt.

    Vielen Dank!
    Gruß
    Bernd

    2. Dezember 2012 um 14:47
    1. Hi Bernd, klar darfst du Andre sagen ;) Freut mich sehr, dass es geklappt hat.

      2. Dezember 2012 um 14:53
  28. Bernd sagt:

    Hallo André,

    darf ich André sagen? Ich habe dein Script mit Hilfe der Kommentare und der Ergänzung von Babara von der NOF-Schule eingearbeitet. Es funktioniert auf dem iPod wunderbar. Vielen Dank!

    Gruß
    Bernd

    2. Dezember 2012 um 14:53
  29. Simone sagt:

    Das Script funktioniert auf dem iPod wunderbar! Aber was mache ich bei Table Pcs mit einer viel höheren Auflösung? Freue mich über deine Tipps!

    Gruß Simone

    11. Dezember 2012 um 21:59
    1. Hi Simone. Da Tablets meistens eine Auflösung wie eine Desktop PC haben oder zumindest annähert würde ich in dem Fall ein wenig mit CSS nachhelfen. Also die Desktop Seite da lassen und via MediaQueries und Responsive Webdesign die Seite für Tablets anpassen. Siehe zum Beispiel hier: http://t3n.de/news/mediaqueries-inspiration-381500/

      Eine Möglichkeit Tablets abzufangen und dies im JS Code oben zu ergänzen gibt es sicherlich auch, allerdings kenn ich mich da auch nicht weiter mit aus.

      Grüße
      André

      12. Dezember 2012 um 8:05
  30. Kai Leonhardt sagt:

    Hallo, ich danke dir erstmal ;)
    Also ich brauche mal deine Hilfe, es will einfach nicht funktionieren.
    Ich habe jetzt alles kopiert und in eine Datei gespeichert und checkDevice.js gespeichert
    Jetzt habe ich die Datei in einen Unterordner gepackt und dann in der Index Datei die Datei eingebunden
    Es funktioniert nicht
    In der Index Datei habe ich nur eine Weiterleitung in einen anderen Unterordner

    20. Dezember 2012 um 17:31
    1. Hi Kai, ich hoffe du bist gut ins neue Jahr gerutscht und hattest schöne Feiertage. Hast du vielleicht einen Link parat, dass ich mir das angucken kann?

      Ansonsten
      window.location.href = ‘ordner/’; So müsste es dich dann dort hinleiten. Hast du einmal auf Ja geklickt wirst du immer dorthin geleitet, bzw 90 Tage lang. Deswegen kommst du wohl immer in einen Ordner.

      2. Januar 2013 um 7:47
  31. Christoph sagt:

    super Andre…vielen Dank

    19. Februar 2013 um 12:54
  32. Alex sagt:

    Hallo Andre,

    habe auch Dein Code kopiert und in die mobile.js kopiert. Der Ordner für die mob. Website ist im Ordner der normalen Seite. Wenn ich jetzt die Website am PC anwähle, bringt er mir die Startseite der mob. Seite. Auch das Skrit für die auswahl geht beim Handy gar nicht ! Habe ich da irgendwas in der Pfadangabe falsch angelegt ?
    window.location.href = „/mobil“ !

    Hast Du eine Idee ???

    Alex

    5. März 2013 um 19:18
    1. Hallo Alex. Hast du das Skript in deine normale Seite eingebunden mit einem Skripttag? Du meinst du wirst jetzt von der normalen direkt auf die mobile geleitet? Hört sich alles sehr seltsam an. Kannst du mir sonst nen Link posten?

      5. März 2013 um 20:08
  33. Alex sagt:

    Hallo,
    das mit der Weiterleitung auf die mobile Seite war von mir falsch ! :-(. Hatte fälschlicherweise die mobile Seite in den Ordner der normalen Website kopiert ! Mein Fehler !
    Das mit dem Skripttag wird es wohl sein ! Jetzt muss ich nur noch herausfinden wie ich das Skripttag bei nof12 in die Seite einfüge !
    Denn das habe ich vergessen !!!

    Ich versuche und melde mich auf jedenfall !

    Danke erstmal für den Tipp !

    Alex

    8. März 2013 um 18:55
  34. Alex sagt:

    He Andre,

    habe den Fehler gefunden ! Habe die Datei „mobile.js“ benannt statt „mobil.js“ ! Oh je, manchmal wird man schon betriebsblind.

    Danke Dir ! Tolle Arbeit und
    Hilfe !
    Bitte weiter so !

    Gruß Alex

    11. März 2013 um 16:23
    1. Hey Alex, freut mich zu hören ;)

      12. März 2013 um 10:03
  35. Thomas sagt:

    Hallo Herr Knieriem,
    was muss als Typ eingegeben werden, wenn eine Umleitung nur für iPad und anderes Tablet PC durchgeführt werden soll? Reicht da „ipad“?

    LG
    Thomas

    3. April 2013 um 15:12
    1. Hallo Thomas,

      wenn du nur iPad schreibst, dann zählt der Code auch ebennur für diese. Um ein Android Tablet abzufangen, würde ich gucken, ob es ein Android Gerät ist und je nach Auflösung dann weiterleiten, also wenn die Auflösung größer als 1000×800 ist oder so. Leider hab ich da nun auch kein direkten Codeschnipsel für.

      4. April 2013 um 8:37
  36. Sven sagt:

    Hi André,

    was muss ich tun wenn ich nun durch den confirm auf eine andere Seite springen will, also kein Unterordner (klappt schon), und trotzdem ein cookie setzen will, damit der User beim nächstenmal automatisch umgeleitet wird?

    Viele Grüße,
    Sven

    11. April 2013 um 13:35
    1. Hi Sven, genau dasselbe wie sonst auch. Nur muss jetzt ein http://deineurl.de

      13. April 2013 um 16:11
  37. Flo sagt:

    Hi André,

    dein script ist wirklich hervorragend und es funktioniert bei mir auch prima.
    Ich würde aber gerne auf meine mobile webseite umleiten, ohne dass der user gefragt wird.
    Könntest du mir helfen, wie der code dann aussehen muss?
    Ich danke im Voraus
    Grüße
    Flo

    24. April 2013 um 21:23
    1. Hey Flo, das geht sogar viel leichter.

      Dafür nur den unteren Teil:

      function Client() {
      }

      Client.prototype.mobileClients = [„240×320″,“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;
      }

      var client = new Client();
      if (client.isMobileClient(navigator.userAgent)) {
      window.location.href = „m.deineseite.de“;
      }
      else if(client.isOperaMini(navigator.userAgent)){
      window.location.href = „m.deineseite.de“;
      }
      }

      Das sollte gehen. Ist ungetestet und nur eben zusammenkopiert. Also du brauchst die Client Funktion. Dann wird geguck ob es ein client ist und gleich umgeleitet

      26. April 2013 um 7:23
      1. Flo sagt:

        Hi André,

        hab vielen Dank für deine Antwort. DANKE !
        Es funktioniert leider noch nicht. Der Browser bleibt in der Abfrage irgendwie hängen. Ich bekomme auch eine Source Code Fehlermeldung im html-Editor komischerweise aber in dieser Zeile:

        -> window.location.href = “/mobile”;

        im vorherigen kompletten script mit cookie ( das ja funktioniert ) ist meine Pfadangabe dieselbe…

        der Block sieht ja so aus:

        var client = new Client();
        if (client.isMobileClient(navigator.userAgent)){
        window.location.href = “/mobile”;
        }

        Das verstehe ich jedoch nicht, denn wo soll der Code denn hier fehlerhaft sein?
        Ich suche und probiere weiter, vielleicht fällt dir ja noch etwas dazu ein?

        grüße
        Flo

        26. April 2013 um 9:17
  38. Flo sagt:

    Hi André,

    jetzt läuft es, die Pfadzeile war es nicht.
    Ich bekam dann eine Fehlermeldung wegen der Opera mini abfrage:

    TypeError: ‚undefined‘ is not a function (evaluating ‚client.isOperaMini(navigator.userAgent)‘)

    Ich hab sie gelöscht und ohne die Opera Abfrage läuft das script. Irgendein syntaxproblem, ich werde weiter forschen…
    warum überhaupt eine extra opera mini abfrage?

    grüße
    Flo

    26. April 2013 um 9:38
    1. Ah super, dass es geklappt hat ;) Ja der hatte zu den Zeiten noch Probleme gemacht. Das sollte aber mitlerweile auch kein Problem mehr darstellen ;)

      5. Mai 2013 um 16:15
  39. dennis sagt:

    hallo,

    bei mir am iphone 4s passiert kommt leider keine abfrage :( kannst du mir mal ne mail geben für die domain?

    ist plain html sollte aber dennoch funktionieren oder?

    15. Juni 2013 um 10:00
    1. Hi Dennis, das sollte auch Plain HTML funktionieren. Eine URL bei der das gerade läuft habe ich nicht mehr da.

      Geh mal auf diese Seite:
      http://whatsmyuseragent.com/

      Kannst du mir sagen, was oben in der Box steht? Eigentlich sollte er bei iPhone oben irgendwo ein iPhone stehen haben.

      Grüße

      19. Juni 2013 um 6:57
  40. Mel sagt:

    Hallo,
    bei mir funktioniert alles supper. Ich hab nur mal eine Frage. Kann man das auch einstellen das der Cookie nach einer bestimmten Zeit gelöscht wird? Also das beim nächsten Besuch wieder eine neue Abfrage kommt?

    Grüße
    Mel

    26. Juni 2013 um 10:13
    1. Hallo Mel, klar kann man das machen. Im Code steht ja:

      CookieSave(‚NoMobile‘, ‚1‘, ’90‘);

      Die 90 dort ist die Anzahl der Tage, die das Cookie gespeichert wird. Also kannst du es auch auf 0 oder 1 setzen. Dann wird am nächsten Tag oder bei der nächsten Browsersitzung wieder eine Abfrage gestellt.

      Grüße
      André

      2. Juli 2013 um 14:52
  41. Bernd sagt:

    Hallo André,
    Ich habe Dein Script schon seit längerer Zeit im Einsatz. Funktioniert bestens. Nun habe ich mir ein htc Windows Phone zugelegt. Hier funktioniert die Umleitung leider nicht. Woran kann das liegen?

    Gruß
    Bernd

    27. Juli 2013 um 17:58
    1. Hey Bernd, laut http://stackoverflow.com/questions/9926504/how-do-i-check-windows-phone-useragent-with-javascript sollte es gehen, wenn man einfach an diesen langen mobile String noch iemobile und windows phone hinzufügt. Kannst du ja mal ausprobieren und berichten ob es klappt.

      27. Juli 2013 um 18:07
  42. Bernd sagt:

    Hallo André,

    es klappt wunderbar. Herzlichen Dank und weiter so.

    Gruß
    Bernd

    29. Juli 2013 um 16:47
  43. Sillo sagt:

    Erst mal Danke für den tollen Script. Ich muss zugeben ich hab die ganzen Kommentare nur überflogen, aber wie bekomme ich es hin dass dem Besucher sowas angezeigt wird:

    Möchten Sie auf unsere mobile Webseite umgeleitet werden?

    mobile.blablabla.de

    sprich wie bekomm ich in dem fenster ein absatz rein? br un p will er nicht ;)

    2. August 2013 um 12:38
    1. Sillo sagt:

      jaja… google ist dein freund… xD

      „/n“ wars… xD

      2. August 2013 um 12:59
    2. Genau das wollte ich gerade antworten ;)

      2. August 2013 um 13:26
  44. Kathrin sagt:

    Hi André,

    danke für das super Script!

    Hab nur ein kleines Problem:
    Bei mir wird das Cookie nur berücksichtigt, wenn ich auf „Abbrechen“ gehe.
    Klicke ich auf „Ja, weiterleiten“ wird das nicht gespeichert und ich muss jedesmal von der http://www.domain.de das Cookie bestätigen, um dann auf die m.domani geleitet zu werdeb – ist das so gewollt?

    20. August 2013 um 8:59
    1. Hi Katrin, sry für die verspätete Antwort, ich war im Urlaub ;)

      Also ja das ist bisher im Script so gewollt. Aber das lässt sich relativ leicht ausbauen.

      if(mconfirm == true){
      // Hier einfach einen anderen Cookie speicher, zb so
      // CookieSave(‚IsMobile‘, ‚1‘, ’90‘);
      window.location.href = mversion;
      } else{
      CookieSave(‚NoMobile‘, ‚1‘, ’90‘);
      }

      Und dann ganz unten dann:

      if(CookieGet(‚IsMobile‘) == 1) {
      window.location.href = mversion;
      }

      So sollte es dann gehen! Viel Erfolg dabei ;)

      29. August 2013 um 15:24
  45. Kathrin sagt:

    Hi André,

    danke für das Script. Funzt super.

    Der Kunde möchte allerdings jetzt auch noch die Möglichkeit „zurück zur Desctop Version“. Dazu muss ich den Cookiewert auf 0 setzten, damit die Weiterleitung auf mobile nicht mehr läuft. Nun ist es so, dass der Cookie ja auf der http://www.Domain gesetzt ist. Wenn ich bei m.domain den Cookie abfragen möchte, wird er natürlich nicht gefunden.
    Lange Rede Kurzer Sinn: wie kann ich den Cookie auf beide Domains setzen?

    4. September 2013 um 8:01
    1. Hi Kathrin, dafür müsstest du in der Funktion Cookiesave die Domain mit übergeben.

      document.cookie = name + „=“ + value + expires + „; path=/;domain=example.com“;

      Grüße
      André

      4. September 2013 um 8:53
      1. Kathrin sagt:

        Mensch, du bist ja fix!
        Klappt prima. danke!

        Gruß Kathrin

        4. September 2013 um 13:15
      2. Erik Poly sagt:

        Hi André
        Kathrin hat am 4. September gefragt, wie sie das anstellen soll, wenn der Cookie-Wert auf 0 gesetzt werden muss bei einem Back-Link „Zurück zur normalen Ansicht“.
        Wie stelle ich das genau an? Auf meiner mobilen Seite (PHP) steht nur der Link. Wie erreiche ich, dass der Cookiewert auf 0 gesetzt wird?
        Muss ich eine spezielle Script-Datei für die mobile Seite erstellen? Mit welchem Inhalt?
        Danke und Gruss aus der CH
        Erik

        1. Dezember 2013 um 21:33
        1. Hi,

          das geht mit der Cookiesave Funktion. Also einfach hier so aufrufen. CookieSave(‚NoMobile‘, ‚1‘, ‚0‘); Damit sollte es auf 0 Tage gesetzt sein und sich der Cookie zerstören. Diesen Code solltest du dann ausführen, wenn man den Link zurück zum Desktop klickt.

          Grüße

          2. Dezember 2013 um 8:30
  46. Kalle sagt:

    Hallo!
    Ein wirklich gutes Script!
    Herzlichen Dank dafür.
    Zwei Sachen bekomme ich aber nicht in den Griff:
    1. Statt „Wollen Sie…“ hätte ich gerne „Möchten Sie…“ – mit Umlaut
    2. Statt „Abbrechen“ hätte ich gerne „Nein“
    Gibt es dafür eine Lösung?
    lg Kalle

    4. September 2013 um 23:21
    1. Hi Kalle, schön, dass dir das Script gefällt :)

      1: confirm(unescape(‚M%F6chten Sie umgeleitet werden?‘));

      2: Das geht leider nicht, da jeder Browser die Confirm und Alert-Fenster selber baut. Man kann diese ja auch nicht via CSS umstylen. Das einzige was man machen könnte, wäre zum Beispiel ein kompletter JS Dialog wie bei http://jqueryui.com/dialog/ zu verwenden. Da kann man dann alles so einstellen, wie man es möchte.

      Grüße
      André

      5. September 2013 um 6:12
  47. Thomas sagt:

    Hallo Andre,
    ich habe auch ein Problem.
    Ich habe vor kurzen für meine Seite „www.ff-lichtenberg.de“ das Mobil-Joomla template eingearbeitet. Dies funktioniert soweit auch super. Die Weiterleitung auf dem Iphone funktoniert sofort. Nur würde ich jetzt gern nur vorher immer erst ein Fenster mit der Meldung „Wollen Sie auf die mobile Version weitergeleitet werden?“angezeigt bekommen. Was genau und wo muss ich dies einbinden? Vielen Dank im voraus. Gruß Thomas

    11. Oktober 2013 um 14:08
    1. Hallo Thomas,

      du musst einfach nur dieses Script kopieren und in eine Datei mit dem Namen einer Wahl anlegen (name.js) und diese dann einfach in den head-Bereich deiner Seite laden. Das war es auch schon. Danach wird der Benutzer gefragt und weitergeleitet.

      if(mconfirm == true){ window.location.href = mversion; // Hier das Verzeichnis festlegen

      An der Stelle musst du dann dein Verzeichnis oder Pfad festlegen, wo die mobile Seite sich befindet. also …href = ‚/mobile/‘; beispielsweise.

      Viele Grüße

      12. Oktober 2013 um 9:04
  48. Thomas sagt:

    Hallo Andre, danke für deine Antwort aber genau das steht ja auch schon oben in den anderen Nachrichten. Ich bin leider nicht der css Held. Nocheinmal meine Frage:
    ich habe ein neues Textdokument erstellt das checkdevice.js heisst. Dort hab ich den kompletten Script von dir von oben eingefügt.Eingefügt habe ich dann den link zu meiner Mobilen Seite(sieht dann so aus) if(mconfirm == true){
    window.location.href = ff-lichtenberg.de/index.php/de/?device=xhtml; //

    Die Datei habe ich in die gleiche Ordnerebene wie die „index.php“ meiner Hauptinternetseite eingefügt. In meine Hauptseiten index.php habe ich eingefügt (direkt unter sieht dann so aus:

    …..

    Aber es geht dann nicht!?
    Was habe ich falsch gemacht?

    12. Oktober 2013 um 13:59
    1. Hi Thomas,
      das Skript fügt man so ein:
      < script type="text/javascript" src="checkdevice.js">

      window.location.href = ff-lichtenberg.de/index.php/de/?device=xhtml;

      Den Teil musst du in „“ oder “ einfügen, also

      window.location.href = ‚http://ff-lichtenberg.de/index.php/de/?device=xhtml‘;

      Grüße
      André

      12. Oktober 2013 um 20:54
  49. Thomas sagt:

    Die Datei habe ich in die gleiche Ordnerebene wie die „index.php“ meiner Hauptinternetseite eingefügt. In meine Hauptseiten index.php habe ich „“ eingefügt (direkt unter sieht dann so aus:

    …..

    Aber es geht dann nicht!?
    Was habe ich falsch gemacht?

    12. Oktober 2013 um 14:02
  50. Thomas sagt:

    Hallo Andre, ich muss noch einmal nerven. Ich habe den Script genau so eingefügt in meine index.php des Desktop-Seiten-Templates bei Joomla. Und die checkdevice.js Datei habe ich in die gleiche Ordnerebene wie die index.php geschoben. In der checkdevice.js habe ich CookieSave von 90 auf 0 gesetzt trotzdem bekomme ich kein Fester bzw. Auswahl auf dem iphone wo ich hingeleitet werden möchte! entweder liegt es am falschen bzw. falsch angelegten script oder daran das durch das Mobile-Joomla-Template bereits die automatische Umleitung ja schon aktiv ist und dies sich nicht mit einander verträgt?? ich möchte einfach nur das der Smartephone besitzer ein Fenster bekommt damit er auswählen kann welche seite er besuchen möchte. kannst du bitte noch einmal bei mir nachschauen was da falsch sein könnte. den script findest du ja in meinem Quelltext. http://www.ff-lichtenberg.de Vielen Dank im voraus

    16. Oktober 2013 um 10:33
    1. Als Webentwickler sollte man immer einen Blick auf die Konsole haben ;)

      Du hast einen Javascriptfehler in der Checkdevice.js ;) Und zwar hast du die URL auf die Umgeleitet werden soll nicht in „“ oder “ gepackt. Also

      window.location.href = ff-lichtenberg.de/index.php/de/?device=xhtml;

      muss zu

      window.location.href = „ff-lichtenberg.de/index.php/de/?device=xhtml;“

      Danach sollte das Javascript nicht mehr scheitern und dir den Popup anzeigen.

      Grüße

      18. Oktober 2013 um 6:44
  51. Thomas sagt:

    Oh super vielen Dank Andre` jetzt klappt es super!!!
    Eine Frage noch, kann man die Buttons „Abbrechen“ sowie „OK“ umbenennen? z.b.: in Desktop und Mobil? Falls je wie!?
    Vielen Dank im vorraus.
    Gruß Thomas

    20. Oktober 2013 um 12:59
    1. Hi Thomas, das geht leider nicht, da jeder Browser die Confirm und Alert-Fenster selber baut. Man kann diese ja auch nicht via CSS umstylen. Das einzige was man machen könnte, wäre zum Beispiel ein kompletter JS Dialog wie bei http://jqueryui.com/dialog/ zu verwenden. Da kann man dann alles so einstellen, wie man es möchte.

      Grüße
      André

      20. Oktober 2013 um 15:39
  52. Andreas sagt:

    Hallo Andre,

    habe den Code eingebunden und auf meinem Windows Phone welches ich ergänzt habe funktioniert die Weiterleitung auch. Bei den Android Geräten allerdings funktioniert zwar die Abfrage und die Weiterleitung, jedoch hängen sich die Geräte in einer Endlos-Lade-Schleife auf. Was kann ich tun ?

    MfG Andreas

    27. November 2013 um 19:39
    1. Hallo Andreas, kann es sein, dass du auf deiner mobilen Seite auch einen Code hast, um die Handys wieder umzuleiten? Also dass es passiert, dass dein Handy auf die Desktop-Variante geht, dann auf Mobile weitergeleitet und auf der Mobilen Seite steht drin leite weiter auf die Desktop Version. Wenn du mir sagst, wo das passiert kann ich ja mal mit drauf schauen ;)

      Grüße André

      28. November 2013 um 7:46
  53. arexhaj sagt:

    Hallo,
    ich habe jetzt das Javascript kopiert und in meiner html datei in den Headerberiech eingebunden. Und wenn ich mit meinem iphone auf meine seite gehe werde ich gefragt ob ich auf die mobile website weitergeleitet werden soll. Ich akzeptiere dass und alles klappt.
    Doch wenn ich wieder auf meine Seite gehe werd ich nicht mehr gefragt. Ich bin dann nur noch auf der normalen Desktop Version.
    Wie kann ich es jetzt so machen, dass ich immer wieder gefragt werde ?

    18. Dezember 2013 um 19:58
    1. Hey arexhaj,

      kann es sein, dass du einmal auf nein geklickt hast? Um Besucher der Seite nciht zu nerven, wird bei Nein ein Cookie gesetzt, dass 90 Tage lang nicht mehr fragt. Wenn du ja geklickt hast, dann sollte die Meldung immer wieder kommen, bis du einmal nein geklickt hast.

      Grüße

      20. Dezember 2013 um 8:13
  54. Markus Wiedemann sagt:

    Hi!
    Also erstmal…tolle Arbeit…auch wenn ich das nicht gewohnt bin, hab ich es auf Anhieb zum laufen gebracht ;) !

    Wärst Du so nett und schaust es Dir mal an?
    Ich hab da nämlich noch Fragen bzgl. der Anpassung…

    http://hygiene2014.d3.gs

    Die Seite ist iOS-optimiert und z. B. auf der Startseite öffnen die Links A-C etc. in einer Slide-Show. Das find ich erstens mal ziemlich schön :) und zweitens hat es den Hintergrund, dass es sonst Probleme gibt, wenn die WebApp auf dem iPhone/iPad auf dem Homebildschirm als Pseudo-native-App liegt.
    Nachdem da dann nämlich alle Safari-Navigationsbuttons ausgeblendet werden, dürfen die pdf-Seiten nicht separat öffnen. Ansonsten kommt man nämlich nicht mehr zur Seite zurück und muss die WebApp neu öffnen.

    Alles soweit so gut…aber auf Android-Geräten habe ich nun festgestellt, dass die Slideshow nicht funktioniert und die pdf´s nicht angezeigt werden können.

    Hier kommt nun also Dein Script genau richtig!

    Es leitet nun zu einer 1zu1-Kopie meiner WebApp weiter, in der ich lediglich das Slideshow-JScript deaktiviert habe.

    Nun meine Fragen…

    Ist es mir möglich einzustellen, dass auf PC/Mac auch die Abfrage kommt?
    Die pdf´s mittels Slideshow sind da nämlich sehr klein in Safari und in GoogleChrome, Firefox etc. gibt es auch die Probleme…hier wäre die „Android-Version“ besser zu nutzen.

    Und…gibt es die Möglichkeit, bei der Abfragebox nicht die Serveradresse, sondern den selbst definierten Seitentitel anzeigen zu lassen?

    Wär nett wenn Du da mal vorbeischaust und mir helfen könntest…!

    Grüße, Markus

    4. Januar 2014 um 13:05
    1. Markus sagt:

      Also…mittlerweile hab ich den Spies umgedreht und leite zur iOS-Version weiter. Macht ja eigentlich mehr Sinn!

      Das mit der Serveradresse in der Abfragebox würde ich aber immer noch gerne ändern…

      und der Pfeil nach oben (auf dieser Blog-Seite) ist auch cool…wie funktioniert das?

      Grüße, Markus

      5. Januar 2014 um 14:13
    2. Hi Markus, für den Pfeil habe ich auch ein Tutorial:

      http://andreknieriem.de/schon-zum-seitenanfang-scrollen-mit-jquery-smooth-scroll-to-pagetop/

      Die Serveradresse kann man leider nicht ändern, da es ein Browser Spezisches „Confirm“ ist, das jeder Browser anders anzeigt. Hier gibt es mehr Infos:

      http://www.w3schools.com/jsref/met_win_confirm.asp

      Du könntest allerdings auch eine komplette eigene Meldung bauen, zum Beispiel mit http://jqueryui.com/dialog/. Dafür ist dann allerdings etwas Arbeit nötig.

      Grüße

      5. Januar 2014 um 15:27
      1. Markus sagt:

        Herzlichen Dank für die Antwort :)

        6. Januar 2014 um 15:15
  55. Erik sagt:

    Was muss ich an dem Code ändern, dass wenn einer mit seinem PC auf meine Mobile Website kommt, und er gefragt wird, ob er zur Webversion wechseln möchte? (Ab gesehen vom Text).

    4. Januar 2014 um 17:35
    1. Hi Erik, das ist nicht so schwer. Dafür musst das Script oben auch bei deiner mobilen Version einbauen. Und dann musst du nur die eine Abfrage verneinen, also so:

      if (!client.isMobileClient(navigator.userAgent)) {
      mredirect();
      }

      Das heißt, wenn der Benutzer NICHT mobil ist, dann leite um.

      Grüße

      5. Januar 2014 um 15:23
  56. Helmut sagt:

    Hallo,
    habe die Joomla Version auf 2.5.17 aktualisiert und habe den Eindruck, dass die Weiterleitung nicht fuktioniert :-(
    Hier die Vorgabe:
    ………
    window.location.href = mversion; // Hier das Verzeichnis festlegen
    }else{
    // Setze Cookie um spaetere Dialoge zu vermeiden
    CookieSave(‚NoMobile‘, ‚1‘, ’90‘); // Hier den Cookie-Namen ändern
    ……….
    mversion ersetzt durch:
    http://waveswebdesign.de/waveswebdesign.de/Respons
    funktioniert leider nicht wie gewünscht
    Helmut

    19. Januar 2014 um 20:10
    1. Helmut sagt:

      Korrektur:
      habe weiter oben gelesen, dass der Eintrag der Ziel-Domain eingestellt werden soll und nicht wie vor geschrieben.
      Helmut

      19. Januar 2014 um 21:28
    2. admin sagt:

      Hey Helmut, hat es nun geklappt oder nicht? Bin nicht ganz schlau aus deinem Nachtrag geworden.

      Deine Adresse musst du auch in „“ oder “ machen, damit es klappt, falls du das nicht getan hast.

      Grüße

      20. Januar 2014 um 9:21
  57. Patrick sagt:

    Halli Hallo,

    ich hoffe, ich bekomme hier noch eine Antwort, ist ja schon ne Weile her. Also ich nutze das Script und möchte es in Joomla verwenden. Allerdings hat Joomla eine Restriktion beim Aufrufen der php Dateien. Somit kann ich nicht ohne weiteres auf eine „mobile.php“ weiterleiten. Das Joomla Framework wird dann nämlich nicht geladen. Kann mir jemand sagen wie ich das hinbekomme? Das wäre super.. =)

    27. April 2014 um 14:36
    1. admin sagt:

      Hi Patrick, ich verstehe nicht ganz,was das Problem ist. Du musst ja nicht auf eine Php-Datei umleiten, kannst ja sagen „/mobile/“ oder z.B. via Subdomain „mobile.deineurl.de“

      Grüße

      27. April 2014 um 17:03
      1. Patrick sagt:

        joomla geht aber ja immer von der index.php aus. selbst wenn ich eine neue beitragsdatei anlegen würde, die dann als url index.php/mobile hätte, würde ich beim klicken eines menüpunktes ja wieder auf index.php/beitrag1 landen, somit müsste ich quasi für die mobile version alle beiträge 2 mal anlegen, das ist natürlich nicht gewollt.

        allerdings habe ich es jetzt gelöst, indem ich in der index.php oben festlege:

        if (isset($_COOKIE[„pointwhvmobile“])) {
        include(„mobile.php“);
        }
        elseif (isset($_COOKIE[„pointwhvscreen“])) {
        include(„screen.php“);
        }
        else { ?>

        <script type="text/javascript" src="baseurl ?>/templates/template ?>/js/mobileabfrage.js“>

        ans anfang des scripts habe ich noch eine prüfung eingefügt, die nachfragt, ob überhaupt cookies aktiviert sind, sonst würde ich in einer schleife landen. Das script wird also nur ausgeführt wenn cookies aktiviert sind. Außerdem wird in beiden Fällen ein Cookie gespeichert, mit unterschiedlichen Namen. Weitergeleitet wird dann auch in beiden Fällen wieder auf index.php.

        Die lösung ist mit meinen noob-Kenntnissen noch gerade so realisierbar gewesen. Allerdings hat sie natürlich noch gewisse Nachteile. z.B. wenn der user keine cookies aktiviert hat, landet er zwangsläufig auf der NICHT-MOBILE seite. Aber ich denke da muss man Kompromisse machen, nicht wahr?

        Eine Frage noch:
        wenn nun zukünftig mehr Handy-Hersteller hinzukommen, welche ja im Javascript abgefragt werden, woher bekomme ich deren richtige bezeichnung für die Hinzufügung im Script..?

        Übrigens hier der Link zu meiner (vorläufigen) seite:

        http://point.nordkreatur.de

        Liebe Grüße

        27. April 2014 um 20:46
    2. admin sagt:

      Hi Patrick, das wusste ich nicht, aber gute Lösung. Ich hoffe auch, dass das Update-sicher ist, nicht dass das nächste Joomla Update die Datei wieder überschreibt ;) Da mitlerweile alle Android, Windows Phone oder iOs haben werden wohl kaum noch neue hinzukommen, da diese 3 Systeme ja schon abgefragt werden. Nach Herstellern war die alte Methode, als jeder noch sein eigenes Betriebssystem hatte.

      Grüße!

      Ps: Schöne Seite ;)

      28. April 2014 um 18:54
  58. Thomas sagt:

    Hallo André,
    muss eigentlich der Cookiename geändert werden?

    CookieSave(‚NoMobile‘, ‚1‘, ’90‘); // Hier den Cookie-Namen ändern

    Meinst Du für ‚NoMobile‘ was anderes einsetzen?
    Wenn ja, was und warum ?
    Script funktioniert ansonsten – danke :-)
    Hab eine Extradatei gemacht und einen Link drauf gelegt.
    Auf dem Samsung dauert alles ziemlich lange, hab noch ´n S2.
    Das Tablet (auch Samsung) werkelt flotter. Hast Du dafür eine Erklärung? Habe beide Geräte im selben WLAN.
    Gruß Thomas.

    9. Juni 2014 um 10:13
    1. Hi Thomas, nein der muss nicht geändert werden ;) Aber kann ja sein, dass schon ein andere Cookie so heißt deswegen meinte ich das.

      Dein Problem kann ich mir nicht wirklich erklären. Du solltest das Script möglichst als erstes in den Head packen,damit die Seite nicht vollständig geladen wird bevor du umleitest. Vlt. braucht das S2 einfach generell länger um die Datei reinzuladen.

      Grüße

      11. Juni 2014 um 8:26
  59. Philip sagt:

    Einfach nur genial!!!!
    Tausend Dank, nach so was habe ich schon lange gesucht.
    Funktioniert einwandfrei!!!!

    Versuche gerade, noch die umgekehrte Variante zu erstellen.
    Also wenn einer via Dekstop auf der Mobilen Seite geht.

    31. Juli 2014 um 8:27
    1. Hey Philip freut mich, dass alles klappt :) Die umgekehrte Variante geht ja auch so ähnlich.

      31. Juli 2014 um 10:10
  60. Christian sagt:

    Hallo,

    toller Codeschnipsel, gefällt mir gut.

    Funktioniert soweit auch einwandfrei, jedoch möchte ich die Umleitung auf meine mobile Seite welche unter onbile.com gehostet ist.

    Normal binde ich Sie so ein:

    jedoch habe ich dann keine Abfrage.

    Wenn ich es mit deinem Code einbinde:

    window.location.href = ’src=“http://www.onbile.com/redirection/41dcm76yi24odtnh8d3ieyml6557b4z1xwgp3fa32hg46mtjn0″‚; // Hier das Verzeichnis festlegen

    habe ich eine Endlosschleife mit Abfragen..

    Vl. kannst du mir ja helfen :-)

    lg Christian

    14. August 2014 um 15:35
  61. Christian sagt:

    ergänzung zum vorigen kommentar:

    *normal binde ich sie so mit javascript ein:

    http://www.onbile.com/redirection/41dcm76yi24odtnh8d3ieyml6557b4z1xwgp3fa32hg46mtjn0″

    14. August 2014 um 15:41
    1. Hallo Christian, verstehe leider nicht ganz was du meinst, da die Kommentar-Funktion Scripte-Schnipsel entfernt. Könntest du mir eine Mail schreiben, oder nochmal beschreiben, was genau das Problem ist?

      Grüße
      André

      14. August 2014 um 16:49
  62. Andy sagt:

    Hallo,
    ich habe das script umgeschrieben bzw.angepasst und nach anleitung über NOF 12 eingebunden dann publiziert. Es kommt aber keine Abfrage wie erwartet was kann das Problem sein ?

    15. August 2014 um 17:33
    1. Hi Andy, ohne eine Url zu deiner Seite kann ich nur raten. Hast du die Meldung vlt schonmal weggeklickt? Dann ist ja ein Cookie gesetzt.

      Grüße André

      17. August 2014 um 21:54
  63. Frank sagt:

    Hallo,
    ich habe das Script in eine mit Shopware erstelle Webseite eingebunden.
    Leider tut sich aber überhaupt nichts.

    Vielen Dank für Deine Hilfe :)

    26. August 2014 um 15:55
    1. Frank sagt:

      http://securitec.lu/

      26. August 2014 um 15:55
    2. Hallo Frank, da ist ein Fehler in deinem Javascript. Wenn du Chrome oder Firefox hast, kannst du diese in der Konsole sehen. Dort sehe ich, dass in der mobile.js der komplette Javascript-Code in „<code>“-Tags gewrappt ist. Also wenn du ganz am Anfang und ganz am Ende das Code-Tag entfernst, sollte es gehen.

      Grüße
      André

      27. August 2014 um 13:40
      1. Frank sagt:

        Vielen Dank, das Script läuft jetzt!!

        Zwar gibt es noch ein Problem mit der Weiterleitung, aber das liegt wohl nicht am Script

        27. August 2014 um 15:05
  64. Dan sagt:

    Hallo,
    ich habe das Script eingebunden und es funktioniert. Vielen Dank dafür! Nur beim iPad Mini Retina wird nicht auf die URL weitergeleitet. Liegt es an der hochen Bildschirmauflösung der iPad Mini Retina? Kann man das irgendwie umgehen?

    Vielen Dank im voraus.

    12. September 2014 um 10:11
    1. Hi Dan, die Bildschirmauflösung wird nicht abgefragt. Es wird aber auch nicht nach ipads geguckt, da diese ja normalerweise genügend Auflösung besitzen. Um auch iPads mit zu nehmen, musst du an der langen Liste einfach „ipad“ hinzufügen.

      [„240×320″,“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“,“iemobile“,“windows phone“,“ipad“];

      Testen kann ich das leider nicht, da ich keins besitze, sollte aber funktionieren.

      12. September 2014 um 14:45
  65. Tobias sagt:

    Hallo Andre! Super Skript, steh schon ne ganze Weile auf dem Schlauch bei dem Thema :) danke dafür. Jetzt würde ich aber gerne die Abfrage überspringen und direkt nach detection auf die angepasste mobile Seite im Unterverzeichnis verweisen. Inwiefern müsste ich den Code dafür anpassen? Bin leider kein js-Experte ^^

    16. September 2014 um 23:36
    1. Hi Tobias, freut mich, dass das Skript dir geholfen hat. Um die Abfrage zu überspringen musst du einfach in der Funtion „function mredirect(){}“ die If-Abfrage entfernen. Also:

      function mredirect(){
      window.location.href = mversion; // Hier das Verzeichnis festlegen
      }

      17. September 2014 um 8:04
  66. Tobias sagt:

    Super, funktioniert :) danke!

    18. September 2014 um 19:34
  67. Silko sagt:

    Hier nochmal ein kleiner Tipp!

    Macht folgendes:
    Kopiert oben den Code und fügt diesen in ein leere Datei ein.
    Nennt diese z.B. „weiche“ und speichert es als JavaScript ab. Sprich mit der Endung „js“ und in bei dem kopierten Text bitte oben und unten den Tag und entfernen dann in die Datei einbinden in der index.php.

    Jetzt nur noch den Ordner angeben wo die mobile Seite liegt:

    z.B. : window.location.href = „/mobile“; // Hier das Verzeichnis festlegen

    Das sollte eigentlich funktionieren. Jedenfalls bei mir. :-) Hoffe das hilft denen die JS und PHP nicht so kennen.

    Viele Grüße

    22. September 2014 um 21:54
  68. Marcus sagt:

    Hallo,

    ich habe einmal mit:

    eine js Datei eingebunden und den obenstehenen quellcode in diese checkdrive.js reinkopiert.

    Dann habe ich lediglich den Pfad geändert:
    http://www.domain.de/ordner/test/m/;
    vor —// Hier das Verzeichnis festlegen

    den cookienamen hab ich nicht geändert-ich denke, das müsste ja auch mit dem vorgegebenen Namen „NoMobile“ funktionieren.

    getestet hab ich das mit einem nokia Handy….leider funktioniert es nicht.
    Was mache ich denn falsch??

    LG
    Marcus

    26. Januar 2015 um 22:35
    1. Hallo Marcus, wird das Script denn ausgeführt oder gibt es Fehler? Wenn du Firefox, oder Chrome benutzt auf dem PC kannste mal mit „Element untersuchen“ auf die Seite klicken, dann in den Tab „Konsole“ wechseln und dann die Seite neuladen. Falls es Fehler gibt, siehst du diese da. Da du ein Nokia Handy hast, denke ich mal, dass du Windows Phone hast oder? Der Post ist schon etwas älter, vielleicht funktioniert der nicht so ganz mehr mit neueren Windows Phones. Habe leider auch keins da zum testen. In den Kommentaren steht aber auch, etwas wie man es auf Windows Phone zum Laufen kriegt. Ich suche es gleich mal und ergeänze oben im Code.

      Grüße
      André

      27. Januar 2015 um 8:18
      1. Marcus sagt:

        Hallo Andrè,

        ich habe ein älteres Nokia XpressMusic.
        Hab es aber auch bereits mit einem Iphone getestet-seite wir nicht weitergeleitet und auch eine Abfrage erscheint nicht-hab grad mal das mit der Chrome Console gemacht und es ist ein syntax Fehler drin…

        Ich habe irgendwie das Gefühl, das es an der Zeile und der Schlusszeile liegen könnte….denn wenn ich das 1 zu 1 reinkopiere, erschein der gesamte snip von Dir als Inhalt und wird gar nich als Script erkannt.

        Evtl. schaust Du mal in deine Mails-da habe ich Dir einen Link mitgesendet….

        Vielen Dank für Deine Hilfe.

        GLG
        Marcus

        27. Januar 2015 um 12:44
  69. Hi Markus, der Code-Block gehört nicht zum Script dazu, den hatte WordPress durch ein Update hinzugefügt. Diesen einfach entfernen. Ansonsten musst du nur den obrigen Code in ein script-tag einfügen. Da wo mversion steht musst du dein Zeil in “ packen, also ‚/mobile/‘ oder so. Ansonsten schicke mir gerne noch eine E-Mail, diese sollte mein Mailprogramm nicht mehr automatisch wegschmeißen.

    Grüße
    André

    28. Januar 2015 um 18:49
  70. Thomas sagt:

    Hallo André, ich benutze schon eine Weile Dein script, funktioniert einwandfrei :-)
    Frage: Muss die Geräteliste im script eigentlich mal aktualisiert werden? Es kommen ja ziemlich oft neue Handys … u.s.w. mit anderen Auflösungen auf den Markt.
    Gruß Thomas

    14. Februar 2015 um 10:09
    1. Hallo Thomas, es kommt ab und zu vor, dass ich die Liste ergänze, allerdings kommen kaum noch neue Betriebssysteme heraus. Die Auflösungen spielen eigentlich keine Rolle. Es wird nur geguckt, ob irgendein altes Smartphone, oder IOS, Android, Windows Phone usw… Wenn jetzt beispielsweise Sony ein eigenes System bauen würde, müsste man dieses ergänzen, ansonsten ist die Liste glaube ich aktuell.

      18. Februar 2015 um 16:59
  71. Gökhan Uçar sagt:

    Hallo André,

    ich bedanke mich im Vorraus für deinen Skript. Momentan mache ich einige Anpassungen an dem Skript. Und zwar versuche ich die Weiterleitung für die Netbook hinzukriegen. Das Problem an diesen Exemplaren sind ihre Ähnlichkeit zu den größeren Brüdern wie PC und Notebook/Laptop. Daher habe ich mir überlegt, die Bildauflößungen/Screensizes der Geräte zu nehmen. Nur werden in dem User-Agent keine Bildauflößungen verwendet. Gibt es da eine Möglichkeit, den Netbooks dennoch auf die mobile Version umzuleiten?

    2. März 2015 um 14:10
  72. Hallo Gökhan,

    das geht natürlich auch, da du mit Javascript die derzeige Bildschirmbreite mit dabei hast.

    http://www.w3schools.com/jsref/prop_win_innerheight.asp
    oder mit jQuery $(window).height(), $(window).width(). Bekommst du die Werte in px und kannst dann die Funktion mredirect() aus dem oberen Script aufrufen.

    2. März 2015 um 16:25
  73. Namus sagt:

    Hallo Andre,

    ich habe erfolgreich deinen Script auf unserer Seite eingebunden und funktioniert tadellos bis auf ein kleines Manko.
    Bei der Abfrage der Endgeräte in der Zeile: „Client.prototype.mobileClients“ gibt es keine Unterscheidung zwischen „Android Smartphone“ und „Android Mobile“.

    Aktuell kommt die Abfrage auch bei Android Tablets. Die Weiche soll aber nur bei Mobilen Android User kommen.

    Hast du einen Tipp für mich ?

    Beste Grüße
    Namus

    5. März 2015 um 11:10
    1. Hallo Namus, laut http://stackoverflow.com/questions/5341637/how-do-detect-android-tablets-in-general-useragent kommen Handys mit Mobile Android als User Agent, Tablets und andere Geräte nur mit Android. Somit müsste es gehen, wenn du in der Liste mobile android, statt android schreibst.

      Grüße

      5. März 2015 um 14:17
  74. Alex sagt:

    Hallo André,
    ich folgendes Problem. Alles funktioniert soweit ok bis auf die sich dauern wiederholende Abfrage ob ich wechseln will zu mobilen Seite. Der Verfall von Cookie ist auf „0“ gesetzt. Redirect ist auf eine „/m.meinedomain.de“ gesetzt. Doch jedesmal wenn ich die „meinedomain.de“ aufrufe kommt eine Abfrage. Wie kann man dieses lästige Problem loswerden?

    Und noch eine Frage:-):
    Lässt sich für den wiederkehrenden Besucher eine „Willkommen zurück“ erzeugen? Falls ja. Was muss dann noch rein in dein Script?

    Danke dir vielmals im Voraus!
    Sonnige Grüße aus München.
    Alex

    6. März 2015 um 10:53
    1. Hallo, der „Der Verfall von Cookie ist auf “0” “ heißt doch, dass er den Cookie nicht speichern soll. Somit kommt die Abfrage natürlich jedes Mail. Du musst dort eine Eingabe machen, wie lange der Cookie bestehen bleiben soll. Also wie im Beispiel oben auf 90 Tage.

      Grüße
      André

      9. März 2015 um 10:09
  75. eilico sagt:

    hi andre, es funktioniert super, nur – wenn der User aber die mobile Website nicht mehr sehen will und die volle Version aufrufen möchte, zeigt sich nur eine blanke weisse Seite.
    Wenn er also nicht mehr auf die mobile Seite möchte, muss er zuerst die Cookies löschen, dann funktioniert die Umleitung wieder und er kann die volle Seite aufrufen. Aber dann bleibt er ständig auf der vollen Seite und die mobile Seite lässt sich nicht mehr aufrufen…..

    hm.
    Es ist ja echt ein Krampf mit dem es allen recht machen und inzwischen sind ja alle Smartphones schon soweit, dass sie die vollen Websites auch schon anzeigen können.

    kann man da das Cookie irgendwie wieder löschen durch ein Zusatzscript? Z.B. durch Klick auf einen speziellen Button?? Ich fang nämlich grad an, mich mit JS auseinanderzusetzen :-P uijegerl…
    Aber Danke wenn du einen Tipp für mich hättest :-)

    14. März 2015 um 10:25
    1. Hallo eilico, sry für die späte Rückmeldung, hatte keine Zeit bisher.

      Klar kannst du den Cookie via Script „löschen“. Das geht indem du Funktion CookieSave() benutzt. Du speicherst den Cookie nocheinmal aber mit einer Lebensdauer von 0 Tagen, 0 Stunden, 0 Sekunden. Somit ist der Cookie sofort abgelaufen und wird gelöscht. Also so:

      CookieSave(‚NoMobile‘, ‚1‘, ‚0‘); Das sollte klappen denke ich.

      18. März 2015 um 14:28
  76. Dirk sagt:

    Guten Morgen Andre,

    vielen Dank nachträglich, zu Deinem tollen Script und dafür, dass Du Dich nach fast 4 Jahren immer noch darum bemühst, den vielen Fragenden zu antworten.

    Mein Problem:

    Beim ersten Aufruf kommt die Frage nach der Weiterleitung und je nach Entscheidung kommt man auf die ausgewählte Seite.

    Bei jedem weiteren Aufruf kommt logischerweise keine Frage mehr. Allerdings wird man auch nicht mehr auf die mobile Ausgabe weitergeleitet, selbst wenn man sich beim erstan Aufruf dafür entschieden hatte, Was mache ich falsch?

    Liebe Grüße
    Dirk

    19. März 2015 um 7:07
    1. Hallo Dirk,

      das hört sich tatsächlich falsch an. Aber wenn ich Code oben nach dem Aufruf der Funktion Cookiesave gucke, dann wird diese nur ausgeführt, wenn man auf „Nein“ klickt. Also müsstest du irgendwann Nein geklickt haben.

      24. März 2015 um 9:27
  77. Hallo Dirk, danke für die netten Worte. Das Script speichert nur einen Cookie für 90 Tage, wenn man auf ablehnen klickt, sodass man dann die Desktop Variante 90 Tage ohne Frage nutzen kann. Dass er auch die Weiterleitung speichert ist nicht vorgesehen, wäre aber auch eine gute Erweiterung. Dafür müssteste nur an der Stelle wo der redirect kommt nen Cookie setzen und dann vorher wo auch nach dem anderen geguckt wird nach dem neuen gucken und dann redirecten.

    Grüße André

    19. März 2015 um 21:36
    1. Dirk sagt:

      Hallo Andre,

      na, das ging aber schnell. Danke.

      Okay:
      Dass ein Cookie ermöglicht, 90 Tage ohne Frage auf der Desktopvariante zu verbleiben, wenn ich mich nun mal dafür entschieden habe, finde ich einleuchtend.

      Aber ich habe mich beim ersten Aufruf für die mobile Version entschieden. Beim nächsten Aufruf erhalte ich keine Entscheidungsmöglichkeit und bleibe auf der Desktopvariante. Das finde ich komisch. Nur wenn ich das Cookie lösche, werde ich wieder gefragt. Aber auch wieder nur einmal, obwohl ich mich für die mobile Version entscheide.

      Was verstehe ich falsch.

      Schönes Wochenende.

      21. März 2015 um 7:27
  78. Hallo Andre

    Super Code, genau das was ich gesucht habe, danke!

    Weisst du per Zufall welche Informationen bei der Verwendung von Tablets im userAgent des navigation-Objekts mitgegeben werden? Dieselben wie beim Desktop?

    Gruss

    13. Mai 2015 um 8:45
    1. Hallo David. Ipads kannst du einfach mit dem User agent ipad abfangen, android tablets geben leider auch nur android zurück. Dort könnte man aber mit Bildschirmgröße gegensteuern. also wenn android und > 768 breit, dann tablet.

      15. Mai 2015 um 22:14
  79. Tobias sagt:

    Hallo,

    versuche es schon seit Stunden aber bekomme es leider nicht hin, habe auch schon andere Scripte ausprobiert, finde aber den Fehler nicht.

    http://www.owlnerfcommunity.de
    http://www.owlnerfcommunity.de/mobile

    29. August 2015 um 19:48
    1. Hallo Tobias, das sieht bei dir aber eigentlich richtig aus. Sobald du die Option einmal bestätigt oder abgelehnt hast, wird es 90 Tage im Cookie gespeichert. Vlt. musst du deine Cookies leeren, um zu sehen, ob alles gut ist. Zudem würde ich das JS direkt im Head sehr weit oben anbringen, da sonst erst die komplette Seite geladen wird, bevor gefragt wird, ob umgeleitet werden soll und das ist ja nicht Sinn der Sache.

      Viele Grüeß
      André

      31. August 2015 um 11:00
  80. OpalShade sagt:

    Hey Andre,

    ich bin mal eben über dein Skript gestolpert. Erstaunlich, dass fast alle Antworten online bezüglich einer Weiterleitung für Mobilnutzer die Möglichkeit ausschließen, den Besucher selbst entscheiden zu lassen.

    Was mich jetzt noch stört ist die lange Lebensdauer. Wie ich auf einen Tag verkürze, hab ich schon den Kommentaren entnehmen können. Ich möchte aber gern einen Schritt weitergehen und möchte einen Session Cookie.
    Eine Lösung wurde bereits weiter oben angegeben, welche aber nicht funktioniert (zumindest bei mir):

    CookieSave(‚NoMobile‘, ‚1‘, ’90‘);
    zu
    CookieSave(‚NoMobile‘, ‚0‘, ’90‘);

    Was soll dieser Wert beeinflussen, vor allem weil ich keine Funktion für den Wert ‚0‘ habe?
    Weiter unten wurde sogar

    CookieSave (‚NoMobile‘, ‚1‘, ‚0‘);

    vorgeschlagen, was natürlich auch nicht stimmen kann. 0 Tage heißt nichts anderes als dass der Cookie in dem Moment ungültig würde, in dem er gespeichert wurde.

    Ich hoffe, du kannst mir da aushelfen. Ein Session Cookie wäre wohl kein must-have, aber sicher nice-to-have.

    Gruß
    Opal

    2. September 2015 um 13:58
    1. Hallo Opal,

      CookieSave (‚NoMobile‘, ‚1‘, ‚0‘); ich glaube das ist schon ganz richtig so. Das bedeutet setze einen Cookie, der 0 Tage geht, was bedeutet, dass der Cookie so lange gültig ist, bis der Browser Fenster geschlossen wird.

      http://stackoverflow.com/questions/14196671/session-only-cookies-with-javascript

      Hier steht das Ganze auch nochmal beschrieben.

      Viele Grüße
      André

      3. September 2015 um 10:16
  81. Hallo Herr Knieriem,

    ich bin dabei unsere Seite neu z erstellen und hatte versucht Ihre Scipt ein zu bauen, aber irgenwie habe ich bestimmt hier was falsch gemacht, ich würde mich freuen wenn Sie mal ein Blick darauf werfen könnten.
    Link: http://www.dasbaustoffkontor.de/Neu/index.html

    Besten Dank im Vorraus.
    R. Schüler

    26. September 2015 um 13:37
    1. Hallo Herr Schüler,

      Sie müssen das Skript in <script type=“text/javascript“></script> Tags einfügen, sonst weiß der Browser nicht, dass es sich um ein Skript handelt und interpretiert es als Text.

      Also <script type=“text/javascript“>function CookieSave(nam…. …</script>.

      Grüße
      André

      26. September 2015 um 15:30
  82. Hallo Herr Knieriem,

    vielen Dank für Ihr Script, hat bei mir auch sehr gut funktioniert. Leider habe ich dennoch ein Problem:

    Anscheinend speichert mein Handy keinen Cookie, da die Abfrage immer wieder kommt, wenn ich die Seite besuche. Der erste Wert vom Cookie in Ihrem Skript steht momentan auf 1, der zweite auf 0. Da bedeutet ja meines Wissens, dass der Cookie nur so lange gilt, wie der Browser geöffnet ist. Wenn ich jedoch den ersten Wert auf 1 und den zweiten auf 90 setze, dann erscheint die Abfrage erst gar nicht.

    Meinen Sie, Sie könnten mir da weiter helfen. Ich würde mich sehr freuen.

    Hier meine Website: http://www.jpgdesign.de
    (Ich habe Ihr Skript bisher nur auf der Startseite eingebunden.)

    Viele Grüße
    J.P. Gerwin

    9. Oktober 2015 um 14:27
    1. Hallo Herr Gerwin,

      das Skript auf Ihrer Seite sieht richtig aus. Wenn Sie den Wert auf 1 und 0 stellen, dann bedeutet, dass das wie schon von Ihnen gesagt, dass die Abfrage nur solange gespeichert wird, wie der Browser geöffnet ist. Das heißt aber auch, dass jedes Mal die Abfrage kommt. Wenn Sie die Parameter auf 1 und 90 gesetzt haben und einmal auf „nein“ geklickt haben, dann ist der Cookie 90 Tage lang gespeichert. Schauen Sie doch dort einmal, ob das der Fall ist und probieren Sie es erneut aus.

      Viele Grüße

      12. Oktober 2015 um 11:20
  83. Hallo Herr Knieriem,

    vielen Dank für den Tipp, hat auch geklappt. Allerdings speichert er ja nur einen Cookie, wenn ich auf „Abbrechen“ klicke. Geht das auch, dass er einen Cookie speichert, wenn ich auf „OK“ klicke. So dass ich beim nächsten mal automatisch ohne Abfrage auf die mobile Version gelange?

    Vielen Dank und viele Grüße
    J.P. Gerwin

    16. Oktober 2015 um 17:24
    1. Hallo,

      klar geht das auch. Dafür muss nur der Code erweitert werden, sowie die Abfrage oben.

      ..
      if(mconfirm == true){
      // hier jetzt auch nen Cookie speichern, vlt so:
      CookieSave(‚YesMobile‘, ‚1‘, ’90‘);

      Und dann ganz unten:
      if(CookieGet(‚YesMobile‘) != 1) { und hier dann ebenfalls diese redirect methode von der mredirect einbauen.

      19. Oktober 2015 um 8:39
  84. Hey,

    sorry wenn ich noch mal nerven muss. Aber wie genau muss das Skript am Ende aussehen. Ich verstehe momentan nicht, wie unterschieden wird, ob ich auf OK oder auf ABBRECHEN klicke. Nur durch die Änderung des Cookie Namens kann das doch nicht passieren oder?

    Vielen vielen Dank und viele Grüße
    JP Gerwin

    20. Oktober 2015 um 21:32
    1. Hallo,

      Das Script reagiert doch jetzt schon auf OK oder Abrechen. Schau dir am besten mal an, was javscript confirm macht:
      http://www.w3schools.com/jsref/met_win_confirm.asp

      oben im Code steht ja if confirm == true. Das bedeutet man hat OK geklickt.

      Ich hoffe das reicht dir als kleiner Anstoß in die richtige Richtung ;)

      Ansonsten sag bescheid wo es hapert.

      21. Oktober 2015 um 12:23
  85. Ok, vielen Dank für die Antwort… also den oberen Teil habe ich den Code verstanden, glaube ich… der sieht jetzt so aus:

    function mredirect(){
    var mconfirm = confirm(‚Wollen Sie auf die mobile Version der Website weitergeleitet werden?‘);
    if(mconfirm == true){
    CookieSave(‚YesMobileJPGdesign‘, ‚1‘, ’90‘);
    window.location.href = ‚http://mobile.jpgdesign.de‘; // Hier das Verzeichnis festlegen
    }else{
    // Setze Cookie um spaetere Dialoge zu vermeiden
    CookieSave(‚NoMobileJPGdesign‘, ‚1‘, ’90‘); // Hier den Cookie-Namen ändern
    }
    }

    Aber bei dem unteren Teil hab ich noch so meine Probleme, der sieht jetzt momentan so aus… klappt aber nicht:

    if(CookieGet(‚NoMobileJPGdesign‘) != 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);
    }
    }

    if(CookieGet(‚YesMobileJPGdesign‘) != 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);
    }
    }

    Kannst du mir helfen. Ich finde den Fehler nicht bzw ich weiß gar nicht wo ich suchen soll, weil ich eigentlich wenig Plan von Javascript habe. :-)

    Vielen dank und viele Grüße
    JP Gerwin

    21. Oktober 2015 um 20:39
  86. Hallo,

    der obere Teil ist super so. Dort machst du ja schon folgendes:

    CookieSave(‚YesMobileJPGdesign‘, ‚1‘, ’90‘);

    window.location.href = ‚http://mobile.jpgdesign.de‘;

    Das speichert ja erst den Cookie und leitet dich dann um.

    Im unteren Teil, musst du nur gucken ob der Cookie da ist und dann umleiten. Also so:

    if(CookieGet(‚YesMobileJPGdesign‘) == 1) {
    window.location.href = ‚http://mobile.jpgdesign.de‘;
    }

    Das ist auch schon alles glaube ich ;)

    21. Oktober 2015 um 21:32
  87. Super, hat alles geklappt. Ich danke dir vielmals!!! :-)

    Viele Grüße
    JP Gerwin

    23. Oktober 2015 um 19:06
  88. Andreas T sagt:

    Hi André,
    Kathrin hatte am 29.August.2013 folgendes geschrieben:
    …..Hab nur ein kleines Problem
    Bei mir wird das Cookie nur berücksichtigt, wenn ich auf „Abbrechen“ gehe.
    Klicke ich auf „Ja, weiterleiten“ wird das nicht gespeichert und ich muss jedesmal …. ist das so gewollt?

    Du hattes geantwortet:
    … ja das ist … so gewollt. Aber das lässt sich relativ leicht ausbauen.

    Ich möchte es genauso haben und hab nun aus deinem Code folgendes gebaut.:

    if(mconfirm == true){ CookieSave(‚ismobil‘, ‚1‘, ’90‘);
    window.location.href = „/start/frameset_mobil.php“; // Hier das Verzeichnis festlegen
    }else{
    // Setze Cookie um spaetere Dialoge zu vermeiden
    CookieSave(’nomobil‘, ‚1‘, ’90‘); // Hier den Cookie-Namen ändern

    ———–
    und unten:-
    ———–
    if(CookieGet(‚ismobil‘) != 1) {
    window.location.href = „/start/frameset_mobil.php“;
    } // Hier den Cookie-Namen anpassen

    Irgendwo ist da aber der Wurm drin. Jetzt funktioniert der Code nicht mehr…:-((
    Ich bitte daher um unterstützung…

    Gruß Andreas

    27. Oktober 2015 um 16:41
    1. Andreas T sagt:

      Uuups!
      Unten hab ich folgendes stehen:
      if(CookieGet(‚ismobil‘) == 1) {
      window.location.href = „/start/frameset_mobil.php“;
      }
      Ich hab aber != und auch == probiert. Ich hab sogar versucht die letzte Klammer wegzulassen… Irgedwie hats auch schon mal funktioniert, aber genau falsch rum…

      Könntest Du mir den korrekten Code schicken angepasst am originalcode ganz oben…?
      Gruß
      Andreas

      27. Oktober 2015 um 16:46
  89. Andreas T sagt:

    Mir ist grad aufgefallen das ich immer mal ‘ oder ‚ verwendet habe…. Oder sollte ich nur “ verwenden…?

    Bitte meine Fragerei vorm Freischalten zusammenfügen… ;-)

    27. Oktober 2015 um 16:53
  90. Andreas T sagt:

    Ich hab jetzt oben:

    if(mconfirm == true){
    CookieSave(„ismobil“, „1“, „90“);
    window.location.href = „/start/frameset_mobil.php“; }else{
    CookieSave(„nomobil“, „1“, „90“);
    }
    }

    und unten:

    if(CookieGet(„ismobil“) == 1) {
    window.location.href = „/start/frameset_mobil.php“;
    }

    seit dem ich das so hab kommt auch keine abfrage mehr…
    Ich hab das jetzt genauso wie das im Dialog mit JP.Gerwin auch wohl irgendwann geklappt hat… Sollte zusätzlich noch darunter folgendes stehen…?:
    if(CookieGet(„nomobil“) == 1) {
    window.location.href = „/start/frameset_desktop.php“;
    }

    PS: Der Link den ich da verwende funktioniert in der Originalversion des Scripts einwandfrei…
    Und mir fällt auf das mal !=1 und mal ==1 im Script steht…

    27. Oktober 2015 um 18:38
    1. Hallo Andreas,

      das waren aber viele Kommentare :D

      Hast du dein jetziges Script irgendwo liegen, dass ich es sehen kann? Steige nicht ganz durch, was jetzt wie geändert wurde.

      Grüße
      André

      27. Oktober 2015 um 19:14
  91. Andreas T sagt:

    Sorry! Ich hab hin und herprobiert…

    http://www.svgehlenberg.de/mobil.js

    Ich hoffe du findest den fehler…

    27. Oktober 2015 um 19:19
    1. Hallo Andreas,

      dein Script hat Fehler, ja. Also erst einmal hast du unten den Code des anderen Cookies entfernt, also

      if(CookieGet(‚NoMobile‘) != 1) {

      }

      Der Code var client = new Client(); etc muss dort genauso bleiben.

      Ganz am Schluss kannst du dann deine Abfrage mit dem

      if(CookieGet(„ismobil“) == 1) {
      window.location.href = „/start/frameset_mobil.php“;
      }

      einsetzen. Dann sollte alles klappen.

      Sag bescheid, wenns nicht klappt.

      Grüße
      André

      27. Oktober 2015 um 19:46
  92. Andreas T sagt:

    OK! Hatte es falsch verstanden. Ich hab den code abgeändert statt das neue If(cockGet(….. unten dranzuhängen.

    Leider gehts immer noch nicht.
    Wenn ich meine HP starte kommt die Abfrage.
    Wenn ich OK drücke kommt meine mobile Seite
    es wird aber kein Cookie abgespeichert.
    Wenn ich dann nochmal starte kommt wieder die Abfrage.
    Wenn ich jetzt Abbrechen drücke kommt auch die Mobile Seite.
    Wenn ich dann wieder beende und die HP neustarte kommt keine Abfrage. Also wurde ein Cookie gespeichert. Nur kommt jetzt, nachdem ich ja vorhin eigentlich auf Abbrechen gedrückt habe, die mobile Seite…

    27. Oktober 2015 um 20:34
  93. Andreas T sagt:

    Hab noch n bisschen probiert. Schwere Geburt. Komm mit echt bescheuert vor…

    Hab jetzt die Klammer nach
    window.location.href = „/start/frameset_mobil.php“;
    }
    weggelassen. Ich glaub die ist zuviel…

    Ich glaube beide Cookies werden korrekt gespeichert. Das Auslesen klappt irgendwie nicht…
    Die Desktopseite wird korrekt behandelt.
    Nachdem ich aber auf der Mobilen Seite war wird immer wieder die Abfrage gestartet…

    Vielleicht könntest Du Dir noch einmal meine Datei ansehen…? Oder vielleicht die Codeschnipsel „oben“ und „unten“ oder besser das komplette Script hier reinstellen oder mir per Mail schicken…? Das wär echt super…

    Danke vorerst für deine Mühen und Neven. Meine sind im Eimer ;-)
    Und auch danke für das an sich tolle Script!
    Ich hab nebenbei bei den Geräten noch „nintendo“ eingetragen. So funktioniert die Weiche auch auf den 3DSssen von meinen Kindern…!

    Gruß Andreas

    27. Oktober 2015 um 22:04
  94. Andreas T sagt:

    Zusatz: Wenn ich die } drinnlasse macht das Script gar nichts und geht direkt und ohne Abfrage auf meine Desktopseite.

    27. Oktober 2015 um 22:06
  95. Ich habe das Script etwas umgebaut und ein kleines Plugin geschrieben. Das Ganze findet ihr in meinem Github Account.

    https://github.com/andreknieriem/redirect

    28. Oktober 2015 um 14:25
  96. Hermann sagt:

    Hallo,
    bin auf der Suche nach html Seiten mobile freundlich zu machen hier gelandet.
    Dieses script funktioniert auch toll!
    ABER
    muss ich in jeder html Datei den neuen link mit Namen setzen?
    Zum Beispiel http://www.test.de/bsp1.htm leite ich auf http://www.test.de/mobile/bsp1.htm um.
    Toll wäre, wenn der Name selbst irgendwie gesetzt würde denn ich habe 400 htm Seiten anzupassen.
    Zudem muss ich bei dieser Methode alle Bilder auch in../mobile/images kopieren da ich den html Seiten nur den relativen Pfad angegeben habe…
    Ansonsten gefällt mir diese Lösung nicht schlecht.
    Weiß jemand, wie google darauf reagiert?
    mfg
    Hermann

    12. Dezember 2015 um 17:35
    1. Hallo Hermann, normalerweise ist es heutzutage ja üblich einfach responsive Webseiten zu erstellen.

      Wenn du sonst tatsächlich jede Seite auf ihr Pendant zur mobilen Seiten umleiten möchtest, dann könntest du das auch programmieren. Einfach ca so: var mobileUrl = ‚mobile.deineseiten.de/‘ + window.location.pathname.

      Das könnteste mal probieren.

      PS: Google straft heutzutage Webseiten ab, die auf mobilen Geräten nicht funktionieren, also ist das immer gut!

      12. Dezember 2015 um 19:45
  97. Hermann sagt:

    Mir schwebt diese Lösung vor:
    – Wenn jemand mit Smartphone eine Seite aufruft, wird er automatisch (oder mit Abfrage wie hier) auf die mobilfreundliche Seite weitergelinkt.
    ABER
    wenn er dann auf klickt, sollte er auf die normale Seite kommen (umfangreichere mit Menüs usw).
    PROBLEM DABEI:
    WIE machen mit js???
    denn er wird ja so IMMER FIX weitergeleitet.
    WIE könnte dies denn realisiert werden???
    Vielen Dank

    28. Dezember 2015 um 8:23
  98. Hermann sagt:

    (Beim vorigen Kommentar ging Standardseite unter)
    Mir schwebt diese Lösung vor:
    – Wenn jemand mit Smartphone eine Seite aufruft, wird er automatisch (oder mit Abfrage wie hier) auf die mobilfreundliche Seite weitergelinkt.
    ABER
    wenn er dann auf Standardseite klickt, sollte er auf die normale Seite kommen (umfangreichere mit Menüs usw).
    PROBLEM DABEI:
    WIE machen mit js???
    denn er wird ja so IMMER FIX weitergeleitet.
    WIE könnte dies denn realisiert werden???
    Vielen Dank

    28. Dezember 2015 um 8:25

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *