Tutorials
Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.
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.
Kommentare
Für eine Info wäre ich sehr dankbar.
Ich bin ein kompletter Code-Depp, obwohl schon über 10 Jahre mit Webdesign hobbymäßig zu tun. Aber immer WYSIWYG. Daher noch eine Frage (ich hoffe du antwortest auch 2016 noch):
Wie funktionieren Cookies? Ich meine, ich habe jetzt das Script eingebaut, die Abfrage nach der und die korrekte Weiterleitung zur mobilen Seite funktioniert auch, nur kommt die Abfrage immer wieder. Muss ich da eine (Cookie-)Datei anlegen? Wie muss ich die benennen, muss ich da was hineinschreiben?
Wahrscheinlich lauter doofe Fragen, auf die ich auf Antwort hoffe. Danke!
https://github.com/andreknieriem/redirect Hier kannst du es dir runterladen. Das Skript hat die Funktion des Auto-Redirects.
Grüße
André
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
- 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
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 www.test.de/bsp1.htm leite ich auf 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
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!
https://github.com/andreknieriem/redirect
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
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...
http://www.svgehlenberg.de/mobil.js
Ich hoffe du findest den fehler...
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é
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...
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é
Bitte meine Fragerei vorm Freischalten zusammenfügen... ;-)
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
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
Viele Grüße
JP Gerwin
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 ;)
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
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
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.
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
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.
...
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: www.jpgdesign.de
(Ich habe Ihr Skript bisher nur auf der Startseite eingebunden.)
Viele Grüße
J.P. 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
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
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é
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
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é
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
Viele Grüeß
André
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
Grüße André
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.
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
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.
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 :-)
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.
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
Grüße
André
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
Grüße
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.
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?
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
Grüße
André
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
Grüße
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
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
function mredirect(){
window.location.href = mversion; // Hier das Verzeichnis festlegen
}
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.
["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","ipad"];
Testen kann ich das leider nicht, da ich keins besitze, sollte aber funktionieren.
ich habe das Script in eine mit Shopware erstelle Webseite eingebunden.
Leider tut sich aber überhaupt nichts.
Vielen Dank für Deine Hilfe :)
Grüße
André
Zwar gibt es noch ein Problem mit der Weiterleitung, aber das liegt wohl nicht am Script
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 ?
Grüße André
*normal binde ich sie so mit javascript ein:
http://www.onbile.com/redirection/41dcm76yi24odtnh8d3ieyml6557b4z1xwgp3fa32hg46mtjn0?
Grüße
André
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
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.
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.
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
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.. =)
Grüße
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
Grüße!
Ps: Schöne Seite ;)
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
habe weiter oben gelesen, dass der Eintrag der Ziel-Domain eingestellt werden soll und nicht wie vor geschrieben.
Helmut
Deine Adresse musst du auch in "" oder '' machen, damit es klappt, falls du das nicht getan hast.
Grüße
if (!client.isMobileClient(navigator.userAgent)) {
mredirect();
}
Das heißt, wenn der Benutzer NICHT mobil ist, dann leite um.
Grüße
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
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
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
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 ?
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
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
Grüße André
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
Grüße
André
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
.....
Aber es geht dann nicht!?
Was habe ich falsch gemacht?
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?
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é
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
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
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
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é
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 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?
document.cookie = name + "=" + value + expires + "; path=/;domain=example.com";
Grüße
André
Klappt prima. danke!
Gruß Kathrin
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
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
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 www.domain.de das Cookie bestätigen, um dann auf die m.domani geleitet zu werdeb - ist das so gewollt?
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 ;)
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 ;)
"/n" wars... xD
es klappt wunderbar. Herzlichen Dank und weiter so.
Gruß
Bernd
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
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
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é
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?
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
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
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
Dafür nur den unteren Teil:
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;
}
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
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
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
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
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 1000x800 ist oder so. Leider hab ich da nun auch kein direkten Codeschnipsel für.
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
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
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
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
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.
Gruß Simone
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é
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
darf ich André sagen? Habe dein Script eingebunden und mit Hilfe der Kommentare hat es geklappt.
Vielen Dank!
Gruß
Bernd
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 www.feuerwehr-bad-duerrenberg.de falls du dir die struktur mal ansehen willst.
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'
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?
LG
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
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?
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
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
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
Dann sollte es klappen
window.location.href = 'http://waveswebdesign.de/m.waveswebdesign.de';
Sollte bei dir gehen. Nicht die '' oder "" vergessen!
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
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
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
schön, dass ich Ihnen mit dem Script helfen konnte. Falls es noch Fragen gibt, dann fragen Sie ;)
für die WP7 Phones sollte der string Client.prototype.mobileClients = ["240x320","windows phone"... aber erweitert werden.
wie müsste der CookieSave aussehen, wenn es nur ein Session Cookie werden soll ??
Thanx tty
// 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.
funzt leider überhaupt nicht.
Gruss
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
Danke sehr. Funktioniert super!
herzlichen Dank! Funktioniert einwandfrei.
Gruß
Steffen
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.
Wie muss ich die Datei nennen und wohin muss ich sie auf meinem FTP Server speichern, damit es bei Wordpress funktioniert?
Danke!
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...
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?
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.
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
Frohes Neues erst einmal ;)
Also eigentlich müssten auch Android Smartphone umgeleitet werden. Im Code steht
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"];
und somit auch android und eine Weiterleitung sollte stattfinden. Ich habe leider kein Android Gerät und kann es deshalb nicht testen.
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 ;)
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?
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
Hinterlasse einen Kommentar