In der Safari von Mobilgeräten funktioniert a href="#" onclick="return false" nicht, warum?

8

In Safari von Moblie-Geräten, wie iphone oder ipad, verhindert <a href="#" onclick="return false"> nicht das Standardverhalten, die Seite wurde trotzdem auf '#' umgeleitet, warum ...? Wie diese HTML-Code:

%Vor%

Wenn Sie in die Safari von Moblie Geräten klicken, geht es zurück zum Anfang der Seite ...

    
skyworm 19.04.2012, 07:52
quelle

7 Antworten

5

Ich hatte das gleiche Problem. Es stellt sich heraus, dass es sich um einen Fehler in der iOS 5-Version von Safari handelt. Nicht in neueren oder älteren Versionen oder anderen Browsern oder Plattformen.

Ich habe es gelöst, indem ich zusätzlich zum vorhandenen preventDefault return false zum onclick-Event-Handler hinzugefügt habe:

%Vor%

Nicht ideal, aber es löst das Problem.

    
SDC 24.10.2012 15:50
quelle
2

Ich hatte gerade das gleiche Problem mit meinen Links, die nicht direkt auf dem iPhone meines Freundes funktionieren. Ich habe das href="#" von meinem gelöscht und die Buttons funktionieren einwandfrei, nur habe ich meine Buttons ein wenig anders eingerichtet als du mit dem JavaScript.

So wie ich es eingerichtet habe, ist das so

%Vor%

Dann trigger ich die Bilder, die ich mit

aufrufen möchte %Vor%

Ich weiß nicht, wie Sie deins eingerichtet haben, aber das Entfernen von href="#" mit diesem Setup funktionierte auf meinem.

    
Optiq 29.11.2012 10:11
quelle
1

Scheint schwierig zu sein. Ich habe mit diesem Code getestet:

%Vor%

Was passiert ist, wenn ich die Seite auf dem iPhone aktualisiere und zum ersten Mal tippe, bekomme ich:

  1. über
  2. nach unten
  3. nach oben
  4. klicken Sie auf
  5. hochscrollen

Beim nächsten Tippen bekomme ich:

  1. nach unten
  2. nach oben
  3. klicken Sie auf
  4. Nein hochscrollen

Lustig genug, das funktioniert nur, wenn der Code die Warnungen enthält. Wenn keine Warnungen innerhalb des Codes vorhanden sind, wird jedes Mal, wenn ich tippe, ein Bildlauf ausgeführt ....

Sicherlich gibt es in der mobilen Safari eine Magie mit hrefs, die Sie sehen können, wenn Sie den Link halten (ohne den Finger zu heben): Ein Action-Sheet erscheint ("copy", "open", "open in ... "usw.) bevor eines der Ereignisse ausgelöst wird.

    
Kai Huppmann 19.04.2012 09:55
quelle
1

Ich habe es tatsächlich mit

probiert %Vor%

und es funktioniert gut

    
kschaeffler 15.08.2012 12:01
quelle
0
___ answer13052837 ___

Ich hatte das gleiche Problem. Es stellt sich heraus, dass es sich um einen Fehler in der iOS 5-Version von Safari handelt. Nicht in neueren oder älteren Versionen oder anderen Browsern oder Plattformen.

Ich habe es gelöst, indem ich zusätzlich zum vorhandenen %code% %code% zum onclick-Event-Handler hinzugefügt habe:

%Vor%

Nicht ideal, aber es löst das Problem.

    
___ qstnhdr ___ In der Safari von Mobilgeräten funktioniert a href="#" onclick="return false" nicht, warum? ___ answer10225648 ___

Scheint schwierig zu sein. Ich habe mit diesem Code getestet:

%Vor%

Was passiert ist, wenn ich die Seite auf dem iPhone aktualisiere und zum ersten Mal tippe, bekomme ich:

  1. über
  2. nach unten
  3. nach oben
  4. klicken Sie auf
  5. hochscrollen

Beim nächsten Tippen bekomme ich:

  1. nach unten
  2. nach oben
  3. klicken Sie auf
  4. Nein hochscrollen

Lustig genug, das funktioniert nur, wenn der Code die Warnungen enthält. Wenn keine Warnungen innerhalb des Codes vorhanden sind, wird jedes Mal, wenn ich tippe, ein Bildlauf ausgeführt ....

Sicherlich gibt es in der mobilen Safari eine Magie mit hrefs, die Sie sehen können, wenn Sie den Link halten (ohne den Finger zu heben): Ein Action-Sheet erscheint ("copy", "open", "open in ... "usw.) bevor eines der Ereignisse ausgelöst wird.

    
___ answer11968897 ___

Ich habe es tatsächlich mit

probiert %Vor%

und es funktioniert gut

    
___ answer12114670 ___

Versuchen Sie zunächst Folgendes:

%Vor%

in js:

%Vor%

Zweitens (wenn die erste Variante nicht funktioniert):

%Vor%

in js:

%Vor%

Soweit ich mich erinnere, löste eine dieser Varianten das gleiche Problem, als ich es hatte.

Die erste Variante ist viel besser, weil Sie nicht html und Javascript

mischen     
___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ answer13623371 ___

Ich hatte gerade das gleiche Problem mit meinen Links, die nicht direkt auf dem iPhone meines Freundes funktionieren. Ich habe das %code% von meinem gelöscht und die Buttons funktionieren einwandfrei, nur habe ich meine Buttons ein wenig anders eingerichtet als du mit dem JavaScript.

So wie ich es eingerichtet habe, ist das so

%Vor%

Dann trigger ich die Bilder, die ich mit

aufrufen möchte %Vor%

Ich weiß nicht, wie Sie deins eingerichtet haben, aber das Entfernen von %code% mit diesem Setup funktionierte auf meinem.

    
___ antwort10223840 ___

Warum nicht? Ich denke, Sie müssen eine Funktion aufrufen und nicht nur falsch zurückgeben ...

%Vor%     
___ qstntxt ___

In Safari von Moblie-Geräten, wie iphone oder ipad, verhindert %code% nicht das Standardverhalten, die Seite wurde trotzdem auf '#' umgeleitet, warum ...? Wie diese HTML-Code:

%Vor%

Wenn Sie in die Safari von Moblie Geräten klicken, geht es zurück zum Anfang der Seite ...

    
___ answer23342941 ___

Grundsätzlich ging ich mit einer ähnlichen Lösung, aber ein bisschen mehr mit einigen bedingten Überprüfung gesichert ... das ist jQuery basiert und für die Anmeldung in Sitefinity verwendet.

%Vor%

Ich habe festgestellt, dass die Verwendung von event.preventDefault () verursachte ähnliche Probleme in einigen IE-Versionen auftreten.

    
___ tag123ipad ___ iPad ist ein von Apple entwickelter Tablet-Computer, auf dem das iOS-Betriebssystem ausgeführt wird. iPad-Anwendungen werden normalerweise in Objective-C oder Swift in der Xcode-IDE geschrieben, obwohl es auch möglich ist, andere Tools zum Erstellen von iPad-Anwendungen zu verwenden. Fragen, die nicht von der Hardware abhängig sind, sollten stattdessen das iOS-Tag verwenden. ___ tag123safari ___ Safari ist Apples Webbrowser, der Standardbrowser auf macOS und iOS. ___ tag123onclick ___ Ein Ereignis, das auftritt, wenn ein Benutzer auf ein Objekt klickt. Es ist eine Kombination von zwei Ereignissen, nämlich "onmousedown" und "onmouseup". ___ tag123preventdefault ___ Javascript-Ereignismethode zum Abbrechen des Ereignisses, wenn es abgebrochen werden kann, ohne die weitere Propagierung des Ereignisses zu stoppen. ___
Tobi 19.04.2012 07:55
quelle
0

Versuchen Sie zunächst Folgendes:

%Vor%

in js:

%Vor%

Zweitens (wenn die erste Variante nicht funktioniert):

%Vor%

in js:

%Vor%

Soweit ich mich erinnere, löste eine dieser Varianten das gleiche Problem, als ich es hatte.

Die erste Variante ist viel besser, weil Sie nicht html und Javascript

mischen     
Yauhen Vasileusky 24.08.2012 18:18
quelle
0

Grundsätzlich ging ich mit einer ähnlichen Lösung, aber ein bisschen mehr mit einigen bedingten Überprüfung gesichert ... das ist jQuery basiert und für die Anmeldung in Sitefinity verwendet.

%Vor%

Ich habe festgestellt, dass die Verwendung von event.preventDefault () verursachte ähnliche Probleme in einigen IE-Versionen auftreten.

    
rfornal 28.04.2014 13:51
quelle