Maison interface Web js tutoriel Problèmes de compatibilité et sujets aux erreurs qui surviennent facilement dans js

Problèmes de compatibilité et sujets aux erreurs qui surviennent facilement dans js

Jun 20, 2018 pm 02:55 PM
js 兼容性

L'éditeur suivant partagera avec vous un article résumant certains problèmes de compatibilité et sujets aux erreurs dans js. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Suivons l'éditeur et jetons un coup d'œil

1. Liés aux attributs

Nous faisons généralement référence aux attributs et aux propriétés collectivement, mais ils le sont. en effet, des concepts différents.

Les caractéristiques (attributs) apparaîtront dans le texte HTML, les modifications des attributs apparaîtront certainement dans le HTML externe des éléments et les attributs n'existent que dans les nœuds des éléments ;

La propriété est utilisée pour modifier les objets JS. À l'exception de certaines fonctionnalités intégrées du navigateur, les autres opérations sur les propriétés n'affecteront pas le texte HTML.

1. IE6/7 ne fait pas de distinction entre les attributs et les caractéristiques

D'autres navigateurs feront la distinction entre les attributs et les caractéristiques, mais IE67 ne fait pas de distinction entre eux. seules les fonctionnalités peuvent être supprimées à l'aide de noms d'attributs. Bien que ces deux noms soient souvent identiques, il existe toujours des différences.

2. IE6/7 ne peut pas utiliser getAttribute/setAttribute pour faire fonctionner des fonctionnalités dont la valeur n'est pas une chaîne

Dans les navigateurs modernes, getAttribute renverra certainement la valeur correspondante en HTML. String, et le résultat renvoyé par IE67 est imprévisible, donc sous IE67, nous devons utiliser AttributeNode pour faire fonctionner les attributs.

3. IE6/7/8 ne peut pas obtenir de texte CSS via l'attribut de style

Ce problème devrait être la séquelle d'IE6/7 ne faisant pas la distinction entre les attributs et les caractéristiques. Lorsque vous utilisez l'attribut style, utilisez simplement elem.style.cssText.

4. IE6/7 analysera les URL relatives en URL absolues

Ce problème amène même l'attribut src vide sous IE6/7 à générer des requêtes en double que vous pouvez utiliser. getAttribute('href/src', 4).

5. Le comportement par défaut des fonctionnalités des éléments est différent

Il y aura de nombreux bugs de ce type. Par exemple, dans certains anciens navigateurs webkit, le comportement par défaut de. case à cocher/radio La valeur est "", pas activée. Dans certains anciens navigateurs Webkit, le premier élément de la sélection ne sera pas sélectionné.

2. Opérations de style

Habituellement, les styles incluent l'obtention et la définition de styles en ligne et l'obtention de styles calculés d'éléments

1. IE prend en charge background-position-x/y mais pas les autres navigateurs

background-position-x/y peut être utilisé pour dégradé facilement la position d'une image. n'est pas pris en charge, nous pouvons envisager d'utiliser l'attribut d'analyse background-position pour le gérer.

2. IE6/7 ne prend pas en charge l'attribut d'opacité

Vous pouvez obtenir le même effet via un filtre alpha, mais n'oubliez pas de déclencher la mise en page haslayout de l'élément.

3. IE6/7/8 laissera par erreur les nœuds générés par clone hériter de certains attributs

Par exemple, l'arrière-plan, si vous en modifiez un ou deux, ils le feront. être changé en même temps.

4. Différentes façons d'obtenir le style calculé

IE6/7/8 utilise elem.currentStyle tandis que d'autres navigateurs utilisent la fonction window.getComputedStyle.

5. Différentes méthodes de pixellisation

La pixellisation fait référence à la conversion de distances dont les unités ne sont pas des pixels en pixels pour faciliter les calculs. À proprement parler, il ne s’agit pas d’un problème de compatibilité, mais il peut être utilisé de manière généralisée. Dans IE6/7/8, nous pouvons utiliser elem.runtimeStyle avec pixelLeft pour le traitement.

Les navigateurs modernes peuvent utiliser l'attribut width.

6. Quelques comportements de BUG lors de l'obtention de CSS

Dans les navigateurs principaux de Webkti, la marge droite se passe souvent mal.

3. Opération de requête

La transmission de requête fait référence à la recherche d'un ensemble d'éléments à travers certaines chaînes caractéristiques ou à la détermination si les éléments satisfont à la chaîne.

1. IE6/7 ne fait pas de distinction entre l'identifiant et le nom

Lors de l'utilisation de getElementById et getElementsByName sous IE6/7, il renverra le même identifiant ou nom que le valeur donnée en même temps. Étant donné que le nom est généralement convenu par le backend, lorsque nous écrivons du JS, nous devons nous assurer que l'identifiant ne duplique pas le nom.

2. IE6/7 ne prend pas en charge getElementsByClassName et querySelectorAll

Ces deux fonctions sont prises en charge à partir d'IE8, donc sous IE6/7, nous pouvons réellement les utiliser uniquement getElementByTagName. .

3. IE6/7 ne prend pas en charge getElementsByTagName('*') et renverra les nœuds non-éléments

Soit ne pas utiliser *, soit écrire une fonction dans filtrez-le vous-même.

4. querySelectorAll sous IE8 n'est pas convivial pour les sélecteurs d'attributs

Presque tous les attributs prédéfinis du navigateur ont des problèmes. Essayez d'utiliser des attributs personnalisés ou aucun attribut.

5. querySelectorAll ne prend pas en charge les pseudo-classes sous IE8

Parfois, les pseudo-classes sont très utiles, mais IE8 ne les prend pas en charge :first, : last, :even, :odd, :eq, :nth, :lt, :gt ne sont pas des pseudo-classes et nous ne devons à aucun moment les utiliser.

6. La fonction matches d'IE9 ne peut pas gérer les éléments qui ne sont pas sur l'arborescence DOM

Tant que l'élément n'est pas sur l'arborescence DOM, il le fera certainement return false.Il est vraiment impossible de supprimer l'élément après la correspondance dans le corps. Bien sûr, nous pouvons également écrire notre propre fonction de correspondance pour éviter le reflux.

4. Opérations événementielles

Habituellement, lorsque les gens posent des questions sur la compatibilité de JS, la première réaction sera attachEvent et addEventListener, mais il existe encore de nombreux détails sur la différence entre ces deux fonctions.

1. Les objets événementiels sont différents

addEventListener est l'objet actuel vers lequel l'événement apparaît, tandis que attachEvent est une fenêtre.

. Les objets paramètres d'événement sont différents

Assurez-vous de noter que la fonction liée à attachEvent a le paramètre e. N'écrivez pas e = e || les deux différences, telles que le bouton ou la sorcière, si la page Y est prise en charge ou non, etc.

2. L'événement de la roue maléfique

Le support des événements de roue est un gâchis, les règles sont les suivantes :
Roue de la souris chromée IE6-11Detla down- 120 up 120

firefox DOMMouseScroll détail down 3 up-3

firefox wheel detlaY down 3 up-3

IE9-11 wheel deltaY down 40 up-40

roue chromée deltaY inférieur 100 supérieur -100

3. Trois événements majeurs sans bulle

Les événements de focus/flou de tous les navigateurs ne font pas de bulles. , la plupart de certains navigateurs prennent en charge les événements focusin/focusout, mais ce foutu Firefox ne le prend même pas en charge.

L'événement submit ne bouillonne pas sous IE678.

Sous IE678, l'événement de changement ne sera déclenché qu'après le flou.

Nous n'avons aucun moyen efficace pour résoudre ces trois problèmes, nous ne pouvons les traiter que par le déclenchement de simulations.

4. a.click()

Cette méthode n'est pas sûre dans de nombreux navigateurs. Une fois exécutée, même si le comportement par défaut est bloqué, la page sautera quand même. .

5. Opérations sur les nœuds

Les opérations sur les nœuds font généralement référence à la copie, à la génération d'un nœud ou au déplacement de l'emplacement d'un nœud.

1.. innerHTML

Lorsque IE6/7/8 utilise innerHTML, il doit y avoir un nœud de texte devant, sinon de nombreuses balises seront perdues. De plus, dans de nombreux cas, l'utilisation de innerHTML entraînera des erreurs dans l'attribut defaultValue.

2. Corps inutile

IE6/7/8 ajoutera automatiquement un corps vide à une table vide

3. , l'événement attachEvent

sera copié et à moins que nous enregistrions les événements que nous avons liés, nous ne pouvons pas les dissocier.

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles connexes :

Comment créer un menu arborescent via des composants récursifs dans Vue.js

Comment utiliser JSONAPI en PHP

Comment obtenir un packaging extrêmement rapide sans configuration dans Parcel.js + Vue 2.x

Lors de l'utilisation de Vue, le support du navigateur ne peut pas se déclencher beforeRouteLeave Problem

Comment résoudre le problème du clic "clic" dans le code fastclick

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comparaison et analyse des différences des versions Bluetooth 5.3 et 5.2 Comparaison et analyse des différences des versions Bluetooth 5.3 et 5.2 Dec 28, 2023 pm 06:08 PM

De nos jours, de nombreux téléphones mobiles prétendent prendre en charge la version Bluetooth 5.3, alors quelle est la différence entre Bluetooth 5.3 et 5.2. En fait, il s'agit essentiellement de versions mises à jour ultérieures de Bluetooth 5, et il n'y a pas beaucoup de différence dans la plupart des performances et des fonctions. La différence entre Bluetooth 5.3 et 5.2 : 1. Les débits de données 1 et 5.3 peuvent prendre en charge des débits de données plus élevés jusqu'à 2 Mbps. 2. Alors que le 5.2 ne peut atteindre qu'un maximum de 1 Mbps, cela signifie que le 5.3 peut transmettre des données plus rapidement et de manière plus stable. 2. Amélioration du contrôle de cryptage 2. Bluetooth 5.3 améliore les options de contrôle de la longueur des clés de cryptage, améliore la sécurité et peut mieux se connecter au contrôle d'accès et à d'autres appareils. 3. En même temps, le contrôle administrateur étant plus simple, la connexion peut être plus pratique et plus rapide, ce qui n'est pas possible dans la version 5.2.

Solution au i7-7700 impossible de passer à Windows 11 Solution au i7-7700 impossible de passer à Windows 11 Dec 26, 2023 pm 06:52 PM

Les performances du i77700 sont tout à fait suffisantes pour exécuter Win11, mais les utilisateurs constatent que leur i77700 ne peut pas être mis à niveau vers Win11. Cela est principalement dû aux restrictions imposées par Microsoft, ils peuvent donc l'installer tant qu'ils ignorent cette restriction. Le i77700 ne peut pas être mis à niveau vers win11 : 1. Parce que Microsoft limite la version du processeur. 2. Seules les versions Intel de huitième génération et supérieures peuvent directement passer à Win11. 3. En tant que 7ème génération, i77700 ne peut pas répondre aux besoins de mise à niveau de Win11. 4. Cependant, le i77700 est tout à fait capable d'utiliser Win11 en douceur en termes de performances. 5. Vous pouvez donc utiliser le système d'installation directe win11 de ce site. 6. Une fois le téléchargement terminé, cliquez avec le bouton droit sur le fichier et « chargez-le ». 7. Double-cliquez pour exécuter l'opération "Un clic

Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Apr 03, 2024 am 11:55 AM

La technologie de détection et de reconnaissance des visages est déjà une technologie relativement mature et largement utilisée. Actuellement, le langage d'application Internet le plus utilisé est JS. La mise en œuvre de la détection et de la reconnaissance faciale sur le front-end Web présente des avantages et des inconvénients par rapport à la reconnaissance faciale back-end. Les avantages incluent la réduction de l'interaction réseau et de la reconnaissance en temps réel, ce qui réduit considérablement le temps d'attente des utilisateurs et améliore l'expérience utilisateur. Les inconvénients sont les suivants : il est limité par la taille du modèle et la précision est également limitée ; Comment utiliser js pour implémenter la détection de visage sur le web ? Afin de mettre en œuvre la reconnaissance faciale sur le Web, vous devez être familier avec les langages et technologies de programmation associés, tels que JavaScript, HTML, CSS, WebRTC, etc. Dans le même temps, vous devez également maîtriser les technologies pertinentes de vision par ordinateur et d’intelligence artificielle. Il convient de noter qu'en raison de la conception du côté Web

Puis-je utiliser des écouteurs Bluetooth en mode avion ? Puis-je utiliser des écouteurs Bluetooth en mode avion ? Feb 19, 2024 pm 10:56 PM

Avec le développement continu de la technologie moderne, les casques Bluetooth sans fil sont devenus un élément indispensable de la vie quotidienne des gens. L'émergence des écouteurs sans fil libère nos mains, nous permettant de profiter plus librement de la musique, des appels et d'autres activités de divertissement. Or, lorsque nous prenons l’avion, on nous demande souvent de mettre notre téléphone en mode avion. La question est donc : puis-je utiliser des écouteurs Bluetooth en mode avion ? Dans cet article, nous explorerons cette question. Tout d’abord, comprenons ce que fait et signifie le mode avion. Le mode avion est un mode spécial pour les téléphones mobiles

Dans quelle mesure le langage Go est-il compatible sur les systèmes Linux ? Dans quelle mesure le langage Go est-il compatible sur les systèmes Linux ? Mar 22, 2024 am 10:36 AM

Le langage Go a une très bonne compatibilité sur les systèmes Linux. Il peut fonctionner de manière transparente sur diverses distributions Linux et prend en charge des processeurs de différentes architectures. Cet article présentera la compatibilité du langage Go sur les systèmes Linux et démontrera sa puissante applicabilité à travers des exemples de code spécifiques. 1. Installez l'environnement de langage Go L'installation de l'environnement de langage Go sur un système Linux est très simple. Il vous suffit de télécharger le package binaire Go correspondant et de définir les variables d'environnement appropriées. Voici les étapes pour installer le langage Go sur le système Ubuntu :

Compatibilité WIN10 perdue, étapes pour la récupérer Compatibilité WIN10 perdue, étapes pour la récupérer Mar 27, 2024 am 11:36 AM

1. Cliquez avec le bouton droit sur le programme et constatez que l'onglet [Compatibilité] est introuvable dans la fenêtre des propriétés qui s'ouvre. 2. Sur le bureau Win10, cliquez avec le bouton droit sur le bouton Démarrer dans le coin inférieur gauche du bureau et sélectionnez l'élément de menu [Exécuter] dans le menu contextuel. 3. La fenêtre d'exécution Win10 s'ouvrira, entrez gpedit.msc dans la fenêtre, puis cliquez sur le bouton OK. 4. La fenêtre de l'éditeur de stratégie de groupe local s'ouvrira. Dans la fenêtre, cliquez sur l'élément de menu [Configuration ordinateur/Modèles d'administration/Composants Windows]. 5. Dans le menu des composants Windows ouvert, recherchez l'élément de menu [Compatibilité des applications], puis recherchez l'élément de paramètre [Supprimer la page de propriétés de compatibilité du programme] dans la fenêtre de droite. 6. Cliquez avec le bouton droit sur l'élément de paramètre et dans le menu contextuel

Explication détaillée des problèmes de compatibilité Win11 avec le logiciel Win10 Explication détaillée des problèmes de compatibilité Win11 avec le logiciel Win10 Jan 05, 2024 am 11:18 AM

Le logiciel du système win10 a été parfaitement optimisé, mais pour les derniers utilisateurs de win11, tout le monde doit être curieux de savoir si ce système peut être pris en charge, voici donc une introduction détaillée au logiciel qui ne prend pas en charge win10 dans win11. Venez le trouver. sortir ensemble. Win11 prend-il en charge le logiciel Win10 : 1. Le logiciel système Win10 et même les applications système Win7 sont bien compatibles. 2. Selon les commentaires des experts qui utilisent le système Win11, il n'y a actuellement aucun problème d'incompatibilité des applications. 3. Vous pouvez donc effectuer une mise à niveau en toute confiance, mais il est conseillé aux utilisateurs ordinaires d'attendre la sortie de la version officielle de Win11 avant de procéder à la mise à niveau. 4. Win11 a non seulement une bonne compatibilité, mais aussi Windo

Présentation de la méthode de téléchargement de pilote pour Win10 pour garantir la compatibilité Présentation de la méthode de téléchargement de pilote pour Win10 pour garantir la compatibilité Jan 01, 2024 pm 06:59 PM

Le pilote d'un périphérique matériel est l'un des programmes les plus importants pour que nous puissions utiliser ce périphérique normalement, mais nous pouvons parfois constater que le pilote que nous téléchargeons et installons est incompatible. En fait, le système peut trouver automatiquement un pilote compatible à télécharger et à télécharger. installons-le. Examinons-le ensemble. Comment rendre le pilote Win10 compatible ? 1. Recherchez d'abord cet ordinateur sur le bureau, cliquez avec le bouton droit et sélectionnez pour ouvrir « Propriétés » 2. Recherchez et ouvrez ensuite le « Gestionnaire de périphériques » sur la gauche 3. Recherchez le périphérique que vous souhaitez télécharger et installez dans le gestionnaire de périphériques, faites un clic droit et sélectionnez "Mettre à jour le pilote" 4. Sélectionnez ensuite "Rechercher automatiquement le logiciel pilote mis à jour" 5. Enfin, attendez un moment et la fenêtre suivante apparaîtra, ce qui signifie que l'installation du pilote est terminée .

See all articles