#ifndef en javascript

Je suis à la recherche d'une solution à seulement définir une fonction une fois en Javascript à l'aide de quelque chose exactement comme #ifndef dans les langages compilés. J'ai trouvé un couple de bibliothèques qui étaient censés imiter cette fonctionnalité, mais ils n'ont pas de travail.

Je suis en train de travailler avec MVC 3 Rasoir et ont défini le contenu html helpers ne mettez ce sont essentiellement des commandes de l'utilisateur sur la page.

Chaque contrôle possède un ensemble de fonctions javascript qui définissent des fonctionnalités spécifiques pour le contrôle, donc c'est ici que réside le problème: les fonctions se défini plusieurs moments où l'aide est appelée plusieurs fois sur une seule page.

Je suis l'espoir de trouver un moyen de garder la très petite quantité de javascript définies au sein de l'aide et ne pas avoir à diviser javascript pour chacun de ces petits lutins dans un fichier séparé.

Exemple:

@helper CmsImage(int id)
{
  var Html = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html;

  <text>
    <input type="button" class="editor_function" style="display: none;" onclick="editImage(@id); return false;" />
    <script>
        function editImage(id) {
            $('#alt_text' + id).attr('value', $('#' + id).attr('alt'));
            $('#image_url' + id).attr('value', $('#' + id).attr('src'));
        }

        function saveImage(button, id) {
            $(button).parent().parent().removeClass('color-yellow').addClass('color-red');
            $(button).parent().siblings('div.widget-content').html('<img alt="' + $('#alt_text' + id).val() + '" src="' + $('#image_url' + id).val() + '" id="' + id + '" />');
        }
        #endif 
    </script>
    Image Url:
    <input type="text" id="image_url@{id.ToString();}" /><br />
    Alt Text:
    <input type="text" id="alt_text@{id.ToString();}" /><br />
    <input type="button" value="save" onclick="saveImage(this, @{id.ToString();});" />
    @Html.Raw(GetCurrentContent(id))
  </text>
}

Le ci-dessus ne fonctionne pas dans le navigateur, si me donne l'erreur: '48: Unrecognized jeton ILLÉGAL"

Vous mettre le code JavaScript via le préprocesseur C...
ce préprocesseur C? Les navigateurs ont un préprocesseur C? Je pense que vous avez peut-être mal compris ma question, je suis à la recherche d'une solution EN Javascript.
Non, navigateurs ne le font pas. Mais si vous avez des fichiers JavaScript sur votre ordinateur, vous pouvez les exécuter à travers un préprocesseur C et donner le résultat dans le navigateur.
Pourriez-vous expliquer pourquoi vous avez besoin de cette fonctionnalité, et comment vous avez l'intention de l'utiliser? Que ferait-il plus facile de proposer une solution qui répond à vos besoins.
Je ne comprends pas comment cela va résoudre mon problème. Je vais l'ajouter à ma question pour décrire ce que je suis en train de faire un peu mieux.

OriginalL'auteur KenEucker | 2011-09-11