Comment puis-je prévenir la fenêtre.onbeforeunload d'être déclenchée par javascript: href liens dans IE?

Je suis en train de construire un fail safe pour mon formulaire qui va avertir les utilisateurs que s'ils quittent la page de leur forme, les données seront perdues (similaire à ce que gmail n').

window.onbeforeunload = function () {    
        if (formIsDirty) {
            return "You have unsaved data on this form. Don't leave!";
        }
}

La fonction ci-dessus fonctionne très bien sous firefox, mais sous IE il est déclenché par tout href lien, même ceux qui sont des liens vers javascript et pas d'autres pages.

par exemple....

<a href='javascript:someFunction();'>click</a>

Je me demandais si il n'y a aucun moyen de contourner ce problème, car je ne veux pas que l'utilisateur en pensant qu'ils sont de quitter la page quand ils sont simplement en cliquant sur un bouton. Je n'ai pas l'option de réécriture de tous les différents liens comme ils sont construits dans et nombreux.

Des idées?

  • Il suffit de ne pas utiliser ces liens. Utiliser Javascript discret à la place.
  • Ce n'est pas une option. Nous sommes à l'aide d'un système très complexe qui a déjà des tas de trucs, construite dans. Je préfère ne pas réinventer la roue dans cette instance.
  • Pouvez-vous changer les liens une fois la page chargée?
  • "Ne quittez pas !" est dictatorial. Vous devriez mieux avertir "Si vous partez, les données non enregistrées seront perdues." Si l'utilisateur veut quitter permettra à l'utilisateur de quitter, peu importe ce que vous essayez. Le plus vous prenez abusif de tactiques, de plus les navigateurs et les utilisateurs de les ignorer.
InformationsquelleAutor Maxx | 2011-10-04