J'ai besoin d'exécuter javascript avant le chargement de la page dans l'application ASP.NET.

Ma fonction renvoie l'emplacement de l'utilisateur et je voudrais transmettre la valeur côté serveur et charger les données en fonction de l'emplacement.

Le problème est que la fonction javascript s'exécute après le chargement de la page.

Voici mon code:

    $(function () {
        getLocation();
    });

Dans la fonction getLocation, je mets la valeur du champ caché

$("#<%= HfLocation.ClientID %>").val(location);

Dans le code derrière j'essaye d'obtenir de la valeur mais c'est toujours vide

protected void Page_Load(object sender, EventArgs e)
        {
            var location = HfLocation.Value;
        }
-1
German 17 déc. 2011 à 21:12

3 réponses

Meilleure réponse

J'ai besoin d'exécuter javascript avant le chargement de la page dans l'application ASP.NET

Cette exigence n'a aucun sens. Rappelez-vous comment ASP.NET fonctionne:

  1. Une requête utilisateur arrive sur le serveur Web
  2. Le serveur Web envoie la demande au moteur ASP.NET.
  3. Le moteur ASP.NET instancie la page et parcourt tout le cycle de vie de la page.
  4. La page est rendue en HTML et envoyée au client
  5. Le navigateur client construit le DOM, exécute javascript côté client, ...

Vous voyez qu'il est impossible d'exécuter l'étape 5 avant l'étape 3 (au cours de laquelle l'événement▶Load s'exécute).

6
Darin Dimitrov 17 déc. 2011 à 17:16

J'ai besoin d'exécuter javascript avant le chargement de la page dans l'application ASP.NET.

Dans ce cas, vous devrez effectuer deux demandes de page. Vous ne pouvez pas le faire avec une seule demande de page, puisque

Au lieu de cela, ayez une mini-page qui effectue l'appel JS, puis effectue une publication sur la page actuelle ou (probablement mieux), charge une nouvelle page. Vous pouvez transmettre les données de localisation via un formulaire standard (non serveur), ou peut-être en définissant un cookie de JS sur le client, ou en le codant dans la chaîne de requête.

La deuxième page / demande contiendra alors les données dont vous avez besoin lors du déclenchement de l'événement▶Load ().

0
RickNZ 18 déc. 2011 à 07:10

Faites un rappel ajax en utilisant javascript pour demander les données.

0
KingOfHypocrites 17 avril 2012 à 13:25