Je veux vérifier dans mon javascript si la page de chargement est sur ma machine locale.
La raison pour laquelle je veux faire cela est que lorsque je développe, j'aime m'assurer que la validation côté serveur (C #) fonctionne correctement. Donc j'aime voir apparaître les erreurs côté client et côté serveur.
Ainsi, pendant que je teste, j'ai un indicateur dans mon jquery validate truc qui laisse toujours passer les données invalides. De cette façon, je vois les erreurs côté client et serveur d'un seul coup.
Cependant, pour le moment, je dois manuellement faire des allers-retours entre le développement et la production.
javascript
jquery
localhost
chobo2
la source
la source
Réponses:
La
location.hostname
variable vous donne l'hôte actuel. Cela devrait vous suffire pour déterminer dans quel environnement vous vous trouvez.la source
si le lancement de HTML statique dans le navigateur, par exemple depuis un emplacement comme la
file:///C:/Documents and Settings/Administrator/Desktop/
détection de "localhost" ne fonctionnera pas.location.hostname
renverra une chaîne vide. alorsla source
Ce n'est toujours pas un fourre-tout, mais cela pourrait être une petite amélioration. Vous pouvez maintenant créer un tableau de domaines et utiliser .includes
la source
C'est ainsi qu'il est vérifié dans React, enregistrez le service worker , un bon moyen de vérifier si vous êtes sur localhost en vérifiant le nom d'hôte, y compris localhost et IPv6 , et la correspondance commence par 127 :
la source
Un moyen simple de le faire serait de simplement vérifier le nom d'hôte par rapport à localhost ou de vérifier votre nom de domaine personnalisé par rapport à une sous-chaîne, dans ce cas des URL ".local", telles que http: //testsite.local
la source
Forme la plus courte utilisant le même mécanisme que les autres scripts:
la source
Celui-ci couvre également certains cas courants où les adresses IP du réseau local commencent par
10.0.
ou192.168.
ou Bonjour comme le domaine se terminant par.local
:la source
Vous pouvez détecter dans l'un de vos codes derrière les pages avec c #, comme ceci:
Ou si vous souhaitez le faire à partir du script client, vous pouvez vérifier la valeur de window.location.host.
J'espère que cela t'aides.
la source
la source
Les réponses ci-dessus résolvent principalement le problème, mais ...
( fe validation, be validation, pas de validation )
Une solution consiste à définir le hachage de l'emplacement et à le vérifier.
http://myname.foo.com/form.html#devValidation
Vous pouvez ajouter des options illimitées avec un commutateur
la source
L'expression régulière est plus lente *, mais courte et nette. De plus, personne ici ne vérifie l'hôte local IPv6 (:: 1)
Il vérifie l'hôte local général, le domaine .local et le fichier: (nom d'hôte vide).
*) Dans Chrome, les performances de
[].includes(...)
sont les meilleures (42 ms), suivies d'une boucle simple (for, while) avec vérification des éléments du tableau (119 ms), puis[].indexOf(...) > -1
(289 ms) et enfin de l'expression rationnelle (566 ms). Mais ces mesures sont en quelque sorte relatives, car différents navigateurs sont optimisés différemment. Dans FF 52 ESRincludes
etindexOf
ont des résultats similaires, l'expression régulière est 2 fois plus lente et la boucle 6 fois plus lente.la source
Sur la base des commentaires ci-dessus, l'expression régulière suivante m'a aidé à vérifier si l'url est 'localhost', une adresse IP IPv4 ou IPv6.
la source