Comment définir une nouvelle fonction en javascript

J'ai un problème en essayant de faire une fonction globale lorsqu'il est impliqué dans la fermeture. Dans le code ci-dessous j'ai une méthode anonyme qui définit à la nouvelle fonction sur le window appelé, getNameField.

(function () {
    function alertError (msg) {
        alert(msg);
    }
    window.getNameField = function (fieldId) {
        try{
            if(!fieldId) {
                fieldId='name';
            }
            return document.getElementById(fieldId);
        } catch(e) {
            alertError(e);
        }
    };
}());

alert(getNameField().value);

Cela fonctionne très bien dans le navigateur, mais lorsque j'exécute le code dans JSLint.com avec "Refuser des variables non définies" est activée, il me donne une erreur.

Problème à la ligne 17, le caractère 7:
'getNameField"n'est pas défini.

Pouvez-vous m'aider à résoudre ce problème de manière que JSLint fait comprend que cette fonction doit être considéré comme global?

"Cela fonctionne très bien dans le navigateur" quel est Donc le problème?
Je voulais juste vous assurer que j'ai écrit le code pour le javascript spec et non pas en utilisant une sorte de "hack".

OriginalL'auteur Eric | 2010-10-12