Comment préserver les valeurs de variables statiques dans les fonctions JavaScript lors de la publication?

StackOverflow https://stackoverflow.com/questions/2146917

Question

Je cet exemple ci-dessous:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">

    <script type="text/javascript">
function test(){

if (test.initialized=='undefined'){
    test.initialized = 'true';
    }

alert(test.initialized);

};
    </script>

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <asp:Button ID="btnPostBack" runat="server" Text="Post back" OnClientClick="test()" />
</asp:Content>

Lorsque je clique post-retour sur la page, j'ai découvert que la variable est définie initialisée -qui la fonction itself- perd de sa valeur et devenir « non défini » à nouveau.

Est-il possible de garder ces valeurs statiques une fois qu'ils sont définis et les rendre non affecté de tout le dos de poste sur la page?

Était-ce utile?

La solution

Vous pouvez les ajouter comme une chaîne de requête ou les conserver dans un cookie.

Autres conseils

Peut-être que vous voulez faire quelque chose comme ça. Je pense aussi que vous confondez la fonction de test avec l'objet de test.

var initialized = false;
function test(){
    if ( !initialized){
        initialized = true;
    }
};
            alert(initialized); // false
            test();
            alert(initialized); //true

javascript va être ré-exécuté postback les sur rechargements de page (sauf si vous utilisez des panneaux de mise à jour).

pour conserver une valeur côté client, écrire la valeur dans un champ caché asp en utilisant JS, et ne rend pas le javascript si IsPostBack est vrai pour qu'il ne soit pas écrasé lors de la publication

Je pense que l'utilisation post partielle est un retour aussi bien.

S'il est impossible, uniquement en utilisant Java script, je pense que les cookies peuvent être une autre façon aussi longtemps qu'ils ne sont pas activés de par l'utilisateur.

Mon sentiment est la meilleure façon est de concevoir la page d'une manière que je ne aurais pas besoin de le stocker:)

Vous pouvez ajouter un champ caché et définissez la valeur de cette situation? Je pense que cette façon il sera conservé dans l'état d'affichage, et vous pouvez charger sa valeur de nouveau dans votre variable quelque chose comme:

p var = '<% = blah.Text%>';

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top