Ankündigung

Einklappen
Keine Ankündigung bisher.

Javascript-Frage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Javascript-Frage

    Hi,
    hab gerade kurz Zeit und will ne mobile Version von meiner Website basteln. Will auf die Startseite ein Javascript klatschen, das dann weiterleitet zur mobilen Version. Ja, gibt auch anderen Varianten als Javascript, aber das ist jetzt gerade das Einfachste und die Lösung meiner Wahl.

    Es gibt da die Variante, die Bildschirmbreite auszulesen und z.B. bei 0 && IsSmartphone())
    window.location = url;
    }
    function IsSmartphone(){
    if (DetectUagent("android")) return true;
    else if (DetectUagent("blackberry")) return true;
    else if (DetectUagent("iphone")) return true;
    else if (DetectUagent("opera")) return true;
    else if (DetectUagent("palm")) return true;
    else if (DetectUagent("windows")) return true;
    else if (DetectUagent("generic")) return true;
    else if (DetectUagent("ipad")) return true;
    else if (DetectUagent("ipod")) return true;
    return false;
    }
    function DetectUagent(name){
    var uagent = navigator.userAgent.toLowerCase();
    if (uagent.search(name) > -1)
    return true;
    else
    return false;
    }
    RedirectSmartphone("http://mobile.version.com");


    [/spoiler]

    Würde folgendes nicht mehr Sinn machen? "Phone" um Windows-Phones abzudecken, der UserString enthält ja "Windows Phone". Ka ob ich Opera extra abdecken muss ? Der OS-Name (android,ios etc) ist doch eh im UserString ?

    Mein Vorschlag
    Spoiler: 

    if (DetectUagent("android")) return true;
    else if (DetectUagent("blackberry")) return true;
    else if (DetectUagent("iphone")) return true;
    else if (DetectUagent("palm")) return true;
    else if (DetectUagent("phone")) return true;
    else if (DetectUagent("ipad")) return true;
    else if (DetectUagent("ipod")) return true;


    Will's gerne verstehen was ich da in meine Seite baue. Komm mir blöd vor, is ja ein recht simples Skript, wahrscheinlich versteh ich da irgendwas falsch. Wäre für Hilfe dankbar.

    Danke im Voraus

    #2
    http://html5-mobile.de/blog/wichtigsten-user-agents-mobile-devices-jquery-mobile

    Kommentar


      #3
      ja, danke, soweit hab ichs auch schon verstanden. meine frage war, warum ich im useragentstring nach "windows" suchen kann, wie vom skript vorgeschlagen. bei jedem windowsnutzer steht doch "windows" im userstring, d.h. auch normale windows-desktop-pc-nutzer werden dann auf meiner mobile seite weitergeleitet ? oder versteh' ich's immernoch falsch ?

      Kommentar


        #4
        Du verstehst das schon richtig. Ich würde mit den Angaben zu den verschiedenen Endgeräten aus meinem Link selber die Funktion anpassen.

        Kommentar


          #5
          ok, dann mach ich das so. kann mir jemand noch sagen, wie die search() funktion in javascript funktioniert ? haben leerzeichen irgendeinen einfluss ? kann ich direkt nen string "windows phone" übergeben ?

          Kommentar


            #6
            Klar, solange dein String in " " drin ist dürfte es keinen Unterschied machen was da drin steht. Ich mein es wird ja nach dem kompletten String gesucht.

            Kommentar


              #7
              Deine Liste würde mein Smartphone nicht erkennen. Ich nutze den normalen Dolphin Browser für Android und habe als UserAgent:
              Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16

              Chrome sowie den Standardbrowser würdest du durch Android erkennen.

              Kommentar


                #8
                Hm blöd. Vielleicht kombinier ich das Skript mit der Bildschirmbreite und dem Useragent via "or". Noch andere (einfache, Javaskript-) Ideen ? Is ja auch nur ne private Spielerei. Wenn ich 90% der mobilen Nutzer abdecke, bin ich zufrieden.

                Kommentar


                  #9
                  http://detectmobilebrowsers.com/

                  /solved

                  Kommentar


                    #10
                    Zitat von matz0r
                    http://detectmobilebrowsers.com/

                    /solved
                    danke :D
                    das macht die sache natürlich leichter. fast schon zu leicht, wollte ja eigentlich ein bissl basteln :3

                    edit :

                    seh' gerade, dass das komplett unkommentiert ist.

                    also folgender batzen für js

                    Spoiler: 

                    (function(a,b){if(/(android|bbd+|meego).+mobile|avantgo|bada/|blackberry|blazer|compal|elaine|fennec|hiptop|iem obile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.( browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar (ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|b umb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a |jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t (-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran |owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40 |5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98 )|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(a.substr(0,4)))window.location=b})(navigato r.userAgent||navigator.vendor||window.opera,'http://detectmobilebrowser.com/mobile');


                    kann mir jemand erklären, wie ich die funktion nun aufrufe ? blicke nich so ganz durch, was dort a und b sind und wo welche klammern hingehören. hab kein plan von js.

                    Kommentar


                      #11
                      Einfach einbinden und "http://detectmobilebrowser.com/mobile" zu deiner URL ändern...

                      Kommentar


                        #12
                        einfach drum und fertig oder wie ?

                        versteh die klammersetzung irgendwie nich, kA.

                        (funktion(var1,var2){})(foo,bar) funktioniert in js als funktionsaufruf ?

                        kanns leider gerade nicht ausprobieren.

                        Kommentar

                        Lädt...
                        X