


Das mobile Terminal führt die Auswahl durch und hebt alle ausgewählten Textereignisse hervor
Dieses Mal zeige ich Ihnen das Ereignis zum Auswählen und Hervorheben des gesamten ausgewählten Textes auf dem mobilen Endgerät ist ein praktischer Fall, werfen wir einen Blick darauf. Kürzlich müssen wir eine Kopierfunktion auf der Seite für HTML5 WebAPP implementieren: Wenn der Benutzer auf den Text klickt und ihn lange drückt, wird der gesamte Text ausgewählt und das Systemmenü „Kopieren“ wird angezeigt. Der Benutzer kann auf „Kopieren“ klicken, um den Kopiervorgang durchzuführen, und ihn dann in „Suche im AppStore“ nach der entsprechenden Anwendung einfügen. Der Grund dafür, dass das Linkformular nicht verwendet wird, um direkt zur entsprechenden AppStore-Anwendung zu springen, besteht darin, das Gewicht der beworbenen Unternehmens-App durch die aktive Eingabe von Schlüsselwortsuchen durch den Benutzer zu erhöhen. Daher ist diese „Kopieren“-Funktion für das Benutzererlebnis von entscheidender Bedeutung.
Ich habe einige Methoden ausprobiert, aber die Kompatibilität auf der Android/iOS-Plattform ist nicht sehr gut. Im WeChat-Browser ist es einfach, lange auf Text zu drücken, um das Systemmenü zu aktivieren und alle ausgewählten Textinhalte hervorzuheben. Allerdings ist die Leistung in anderen Browsern nicht sehr konsistent. Einschließlich der Simulation der Fokuseingabe, der
JavaScript-Auswahl und der Verwendung des a-Tags, um zu versuchen, das Systemmenü zu aktivieren. Diese Methoden weisen alle Kompatibilitätsmängel auf. 1) Obwohl Sie das a-Tag mit dem href-Attribut verwenden und lange auf den Text im UC-Browser und Baidu-Browser drücken, erscheint das Menü „Kostenlose Kopie“/„Text auswählen“. Es erscheint das Menü „Auswählen/Kopieren“, aber in den Systembrowsern einiger Android-Telefone und iPhones wird es als reiner Link betrachtet und es erscheint nur „Link kopieren“ ohne das Menü „Text kopieren“. Selbst wenn nur eine kleine Anzahl von Browsern als machbar angesehen wird, bedeutet dies, dass die Bedienung des Benutzers um einen weiteren Schritt erweitert und die Komplexität erhöht wird. Daher ist diese Lösung nicht ratsam.
2) Bei der Verwendung von Auswahl und Bereich muss die Kompatibilität verschiedener Browser berücksichtigt werden. Der Code lautet wie folgt:
Leider ist das Klicken immer noch nicht möglich oder lange auf iPhone Safari drücken. Markieren Sie den gesamten Text (da window.getSelection auch unterstützt wird, warum kann der Text nach dem addRange-Vorgang in Safari nicht standardmäßig ausgewählt werden? Wenn Sie den Grund kennen, hinterlassen Sie bitte eine Nachricht). Daher ist dieser Ansatz fehlerhaft. Die Methode zur aktiven Auswahl eines Textbereichs wird später angehängt.function selectText(element) { var doc = document, text = docgetElementById(element), range, selection; if (docbodycreateTextRange) { range = documentbodycreateTextRange(); rangemoveToElementText(text); rangeselect(); } else if (windowgetSelection) { selection = windowgetSelection(); range = documentcreateRange(); rangeselectNodeContents(text); selectionremoveAllRanges(); selectionaddRange(range); /*if(selectionsetBaseAndExtent){ selectionsetBaseAndExtent(text, 0, text, 1); }*/ }else{ alert("none"); } }
3) iPhone-Benutzer wissen möglicherweise, dass Safari automatisch den gesamten Text in der Auswahl hervorhebt und auswählt, wenn Sie lange auf den leeren Bereich um den Text in einer Textauswahl drücken (der Zieltext muss in einem platziert werden). unabhängiger p-Container auf Blockebene). Verwenden Sie gemäß dieser Funktion die CSS-Marge, um sie zu ändern. Mit dieser Funktion können Sie die Inkompatibilität der zweiten Methode oben auf iOS-Geräten beheben. Nach dem Test sind die Systembrowser, die mit allgemeinen Mobiltelefonen geliefert werden, unabhängig von der Android- und iOS-Plattform kompatibel. Bei mobilen Produkten anderer Hersteller wie UC Browser und Baidu Browser können Sie aufgrund unterschiedlicher Mechanismen nur die Funktion „Kostenloses Kopieren“ nutzen, die in diesen Browsermenüs bereitgestellt wird.
Also habe ich die zweite und dritte Methode kombiniert und das Taphold-Ereignis in jQuery Mobile verwendet, um den Longtap-Vorgang zu simulieren, um das Kopiermenü des mobilen Systems auszulösen Sie können lange auf den Textbereich drücken, um den gesamten Textinhalt hervorzuheben. Eine weitere Sache: Die kompatiblen Fehler von taphold werden hier nicht detailliert beschrieben und die Lösungen sind nicht enthalten. Wenn Ihr Projekt Exzellenz erfordert, können Sie selbst nach Lösungen suchen.
Meine Lösung ist unten aufgeführt. Der spezifische Code lautet wie folgt:
HTML-Code:
JavaScript-Code:<p class=" para requirement"> <p class="tips tips-t"> 1、必须首次下载才生效<br/> 2、不能从排行榜下载哦 </p> <p class="cparea"> <p class="kwd" id="kwd"><span>三国艳义手机优化大师</span></p> </p> <p class="cparea"> <span class="kdes"><b>★</b>长按虚线框,拷贝关键词</span> </p> <a href="https://itunesapplecom/cn/" data-role="button" class="downlink">去AppStore搜索下载</a> </p>
<script type="text/javascript"> $("#kwd")bind("taphold", function(){ //不支持iPhone/iTouch/iPad Safari var doc = document, text = docgetElementById("kwd"), range, selection; if (docbodycreateTextRange) { range = documentbodycreateTextRange(); rangemoveToElementText(text); rangeselect(); } else if (windowgetSelection) { selection = windowgetSelection(); range = documentcreateRange(); rangeselectNodeContents(text); selectionremoveAllRanges(); selectionaddRange(range); }else{ alert("浏览器不支持长按复制功能"); } }); </script>
cparea{ text-align: center; font-family: Microsoft Yahei; margin: -2em 0 0; } kwd{ display: inline-block; color: #272727; background-color: #fff; font-size: 1875em; font-size: 1875em; padding: 75em 1em; border: 1px dashed #e60012; -webkit-user-select:element; margin: 2em; } kwd span{ display: block; border: 1px solid #fff; } kdes{ display: inline-block; color: #212121; font-size: 875em; padding-top: 0; } kdes b{ color: #ed5353; font-size: 25em; padding-right: 1em; }
Lassen Sie mich abschließend die vollständige Methode zur Unterstützung von Safari hinzufügen:
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen erhalten Sie zu anderen verwandten Artikeln auf der chinesischen PHP-Website!$("#kwd").bind("taphold", function(){ var doc = document, text = docgetElementById("kwd"), range, selection; if (docbodycreateTextRange) { //IE range = documentbodycreateTextRange(); rangemoveToElementText(text); rangeselect(); } else if (windowgetSelection) { //FF CH SF selection = windowgetSelection(); range = documentcreateRange(); rangeselectNodeContents(text); selectionremoveAllRanges(); selectionaddRange(range); //测试 consolelog(texttextContent); textinnerText && consolelog(textinnerText); //FireFox不支持innerText consolelog(texttextContentlength); textinnerText && consolelog(textinnerTextlength); //在Chrome下长度比IE/FF下多1 consolelog(textfirstChildtextContentlength); textinnerText && consolelog(textfirstChildinnerTextlength); consolelog(textfirstChildinnerHTMLlength); //注意IE9-不支持textContent makeSelection(0, textfirstChildtextContentlength, 0, textfirstChild); /* if(selectionsetBaseAndExtent){ selectionselectAllChildren(text); selectionsetBaseAndExtent(text, 0, text, 4); } */ }else{ alert("浏览器不支持长按复制功能"); } }); function makeSelection(start, end, child, parent) { var range = documentcreateRange(); //consolelog(parentchildNodes[child]); rangesetStart(parentchildNodes[child], start); rangesetEnd(parentchildNodes[child], end); var sel = windowgetSelection(); selremoveAllRanges(); seladdRange(range); }
Empfohlene Lektüre:
Detaillierte Erläuterung der Verwendung datumsbezogener Funktionen in JSDetaillierte Erläuterung der Verwendung von faltbaren Paneelen in JSDas obige ist der detaillierte Inhalt vonDas mobile Terminal führt die Auswahl durch und hebt alle ausgewählten Textereignisse hervor. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wie implementiert man die doppelte WeChat-Anmeldung auf Huawei-Mobiltelefonen? Mit dem Aufkommen der sozialen Medien ist WeChat zu einem unverzichtbaren Kommunikationsmittel im täglichen Leben der Menschen geworden. Viele Menschen können jedoch auf ein Problem stoßen: Sie können sich gleichzeitig auf demselben Mobiltelefon bei mehreren WeChat-Konten anmelden. Für Huawei-Mobiltelefonbenutzer ist es nicht schwierig, eine doppelte WeChat-Anmeldung zu erreichen. In diesem Artikel wird erläutert, wie eine doppelte WeChat-Anmeldung auf Huawei-Mobiltelefonen erreicht wird. Erstens bietet das EMUI-System, das mit Huawei-Mobiltelefonen geliefert wird, eine sehr praktische Funktion – das doppelte Öffnen von Anwendungen. Durch die doppelte Öffnungsfunktion der Anwendung können Benutzer gleichzeitig

Liebesanimationseffekte durch Java-Code realisieren Im Bereich der Programmierung sind Animationseffekte sehr verbreitet und beliebt. Mit Java-Code können verschiedene Animationseffekte erzielt werden, darunter der Herzanimationseffekt. In diesem Artikel wird erläutert, wie Sie mithilfe von Java-Code diesen Effekt erzielen, und es werden spezifische Codebeispiele aufgeführt. Der Schlüssel zum Realisieren des Herzanimationseffekts besteht darin, das herzförmige Muster zu zeichnen und den Animationseffekt durch Ändern der Position und Farbe der Herzform zu erzielen. Hier ist der Code für ein einfaches Beispiel: importjavax.swing.

Die Programmiersprache PHP ist ein leistungsstarkes Werkzeug für die Webentwicklung, das eine Vielzahl unterschiedlicher Programmierlogiken und Algorithmen unterstützen kann. Unter diesen ist die Implementierung der Fibonacci-Folge ein häufiges und klassisches Programmierproblem. In diesem Artikel stellen wir vor, wie Sie die Fibonacci-Folge mit der Programmiersprache PHP implementieren, und fügen spezifische Codebeispiele bei. Die Fibonacci-Folge ist eine mathematische Folge, die wie folgt definiert ist: Das erste und das zweite Element der Folge sind 1, und ab dem dritten Element ist der Wert jedes Elements gleich der Summe der beiden vorherigen Elemente. Die ersten paar Elemente der Sequenz

So implementieren Sie die WeChat-Klonfunktion auf Huawei-Mobiltelefonen Mit der Popularität sozialer Software und der zunehmenden Bedeutung von Datenschutz und Sicherheit rückt die WeChat-Klonfunktion allmählich in den Mittelpunkt der Aufmerksamkeit der Menschen. Die WeChat-Klonfunktion kann Benutzern helfen, sich gleichzeitig bei mehreren WeChat-Konten auf demselben Mobiltelefon anzumelden, was die Verwaltung und Nutzung erleichtert. Es ist nicht schwierig, die WeChat-Klonfunktion auf Huawei-Mobiltelefonen zu implementieren. Sie müssen lediglich die folgenden Schritte ausführen. Schritt 1: Stellen Sie sicher, dass die Version Ihres Mobiltelefonsystems und die WeChat-Version den Anforderungen entsprechen. Stellen Sie zunächst sicher, dass die Version Ihres Huawei-Mobiltelefonsystems sowie die WeChat-App auf die neueste Version aktualisiert wurden.

„Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben“ Mit der rasanten Entwicklung der Internettechnologie stellen Webanwendungen immer höhere Anforderungen an die Verarbeitung einer großen Anzahl gleichzeitiger Anforderungen und komplexer Geschäftslogik. Um die Systemleistung und das Benutzererlebnis zu verbessern, erwägen Entwickler häufig die Verwendung asynchroner Aufgaben, um einige zeitaufwändige Vorgänge auszuführen, z. B. das Senden von E-Mails, das Verarbeiten von Datei-Uploads, das Erstellen von Berichten usw. Im Bereich PHP bietet das ThinkPHP-Framework als beliebtes Entwicklungsframework einige praktische Möglichkeiten zur Implementierung asynchroner Aufgaben.

Im heutigen Bereich der Softwareentwicklung wird Golang (Go-Sprache) als effiziente, prägnante und hochgradig parallele Programmiersprache von Entwicklern zunehmend bevorzugt. Seine umfangreiche Standardbibliothek und die effizienten Parallelitätsfunktionen machen es zu einer hochkarätigen Wahl im Bereich der Spieleentwicklung. In diesem Artikel wird untersucht, wie man Golang für die Spieleentwicklung verwendet, und seine leistungsstarken Möglichkeiten anhand spezifischer Codebeispiele demonstriert. 1. Golangs Vorteile bei der Spieleentwicklung: Als statisch typisierte Sprache wird Golang beim Aufbau großer Spielsysteme verwendet.

Implementierungsleitfaden für PHP-Spielanforderungen Mit der Popularität und Entwicklung des Internets erfreut sich der Markt für Webspiele immer größerer Beliebtheit. Viele Entwickler hoffen, die PHP-Sprache zur Entwicklung ihrer eigenen Webspiele nutzen zu können, und die Umsetzung der Spielanforderungen ist ein wichtiger Schritt. In diesem Artikel wird erläutert, wie Sie mithilfe der PHP-Sprache allgemeine Spielanforderungen implementieren und spezifische Codebeispiele bereitstellen. 1. Spielfiguren erstellen In Webspielen sind Spielfiguren ein sehr wichtiges Element. Wir müssen die Attribute des Spielcharakters wie Name, Level, Erfahrungswert usw. definieren und Methoden für deren Bedienung bereitstellen

Die Implementierung exakter Divisionsoperationen in Golang ist ein häufiger Bedarf, insbesondere in Szenarien mit Finanzberechnungen oder anderen Szenarien, die hochpräzise Berechnungen erfordern. Der in Golang integrierte Divisionsoperator „/“ wird für Gleitkommazahlen berechnet, und manchmal besteht das Problem eines Präzisionsverlusts. Um dieses Problem zu lösen, können wir Bibliotheken von Drittanbietern oder benutzerdefinierte Funktionen verwenden, um exakte Divisionsoperationen zu implementieren. Ein gängiger Ansatz ist die Verwendung des Rat-Typs aus dem Paket math/big, der eine Darstellung von Brüchen bereitstellt und zur Implementierung exakter Divisionsoperationen verwendet werden kann.
