JavaScript wird auf iOS nicht bzw. nur im Desktop-Site-Modus ausgeführt

Thema: JavaScript wird auf iOS nicht bzw. nur im Desktop-Site-Modus ausgeführt

Stichworte:
  1. Avatar von Markus

    Markus:

    Standard JavaScript wird auf iOS nicht bzw. nur im Desktop-Site-Modus ausgeführt

    Ich habe ein seltsames Verhalten, das ich mir nicht erklären kann. Eventuell kann mir hier jemand weiterhelfen. Konkret geht es um https://beta.hartfelder-cnc.de. Das Problem tritt aber auch bei anderen Seiten (seit neuestem?) auf.

    Das Problem:
    Auf iOS wird JavaScript nur ausgeführt, wenn ich die Website im Desktop-Site-Modus aufrufe. Ich habe testweise in die functions.js ein alert('Test') eingebunden um es leicht nachvollziehen zu können.

    Einstellungen:
    • Der "Domainname" ist leer.
    • Das "Layout für mobile Seiten" ist leer.
    • "HTTPS verwenden" ist aktiv
    • Im Seitenlayout ist die functions.js als "Eigener JavaScript-Code" eingebunden mit
      Code: [Ansicht]
      <script src="{{env::path}}files/scripts/functions.js"></script>


    EDIT:
    Gerade entdeckt: Wenn ich "HTTPS verwenden" deaktiviere, wird die functions.js auf iOS problemlos geladen. Ist das Problem bekannt bzw. kann das jemand nachvollziehen?
     
  2. Avatar von Spooky

    Spooky:

    Standard

    Das hat nichts mit iOS zu tun. Dein Zertifikat ist einfach ungültig.
     
  3. Avatar von Markus

    Markus:

    Standard

    Ist mir schon klar, dass das für die Subdomain nicht gültig ist. Das ist aber nicht das eigentliche Problem. Zum Beispiel bei https://sternad.de habe ich exakt die selben Einstellungen mit exakt demselben Problem.
     
  4. Avatar von Spooky

    Spooky:

    Standard

    Zitat Zitat von Markus Beitrag anzeigen
    Ist mir schon klar, dass das für die Subdomain nicht gültig ist.
    Solange du kein gültiges SSL Zertifikat hast, kannst du diese Option auch nicht aktivieren, andernfalls führt das zu Problemen.


    Zitat Zitat von Markus Beitrag anzeigen
    Zum Beispiel bei https://sternad.de habe ich exakt die selben Einstellungen mit exakt demselben Problem.
    Dort kann ich aktuell kein Problem feststellen.
     
  5. Avatar von Markus

    Markus:

    Standard

    Öffne https://sternad.de auf einen iPad. Die Navigation (die via JavaScript eingeblendet wird) erscheint hier nicht. Die functions.js wird schlichtweg nicht ausgeführt.
     
  6. Avatar von Spooky

    Spooky:

    Standard

    Ein iPad habe ich nicht zum Testen, nur ein iPhone. Ich sehe keine Unterschiede zwischen Android und iPhone.

    Welche Navigation meinst du?
     
  7. Avatar von Markus

    Markus:

    Standard

    iPhone geht auch. Normalerweise sollte beim Klick auf das Hamburger-Icon die Website langsam zur Navigation (nach unten) scrollen. Sie springt aber nur, was bedeutet, dass die functions.js nicht ausgeführt wird. Zudem sollte auch der Header via JavaScript sticky sein, was er nicht ist.
     
  8. Avatar von Spooky

    Spooky:

    Standard

    Mach mal ein alert('Hello World!'); rein, um zu testen, ob die functions.js vom iPad tatsächlich nicht geladen wird.
     
  9. Avatar von Markus

    Markus:

    Standard

    Ist jetzt drin. Wird auf iPhone/iPad aber nicht ausgegeben. Nur wenn du in den Modus "Desktop-Site anfordern" gehst. (Aus dem kommst du dann nur wieder raus, wenn du den Tab schließst und neu öffnest.)
     
  10. Avatar von Markus

    Markus:

    Standard

    Ich bin mir auch ziemlich sicher, dass das vorher alles funktioniert hat. Hat sich da seit Contao 4.7.1 oder 4.7.2 irgendwas geändert?
     
  11. Avatar von Spooky

    Spooky:

    Standard

    Ich denke nicht, dass das etwas mit der Contao Version zu tun hat.
     
  12. Avatar von Markus

    Markus:

    Standard

    Aber du siehst, dass es nicht ausgeführt wird? Hast du sonst eine Idee?
     
  13. Avatar von Spooky

    Spooky:

    Standard

    Zitat Zitat von Markus Beitrag anzeigen
    Aber du siehst, dass es nicht ausgeführt wird?
    Nein, am iPhone sehe ich den Alert.



    Zitat Zitat von Markus Beitrag anzeigen
    Hast du sonst eine Idee?
    Das einzige, was mir auffällt, ist folgende Meldung in der JavaScript Konsole:
    This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://developer.mozilla.org/docs/M...lLinkedEffects for further details and to join the discussion on related tools and features!
    Diese Meldung wird vermutlich durch dieses http://stickyjs.com/ Plugin verursacht, welches du in der functions.js eingebunden hast.

    Eigentlich brauchst du dieses Plugin doch gar nicht, denn dein Header soll ja ohnehin sofort sticky sein. Mach lieber alles per CSS.
     
  14. Avatar von Markus

    Markus:

    Standard

    Hm. Ich sehe den Alert nicht. Seltsam.

    Ja, die Meldung kommt vom Sticky/Smooth-Scroll-Plugin. Das ist "normal".

    Alles per CSS machen ist keine Lösung. Für manche Dinge brauche ich einfach JS.
     
  15. Avatar von Markus

    Markus:

    Standard

    Okay. Es liegt wohl alles nur daran, dass "Superfish" nicht mit jQuery 3.x kompatibel ist. Sorry für die Aufregung und danke für dein Feedback.