2010-05-17 5 views
0

J'ai une partie Web personnalisée placée sur l'une des pages de l'application dans SharePoint. Cette page semble déjà avoir une fonction qui s'exécute sur windows beforeunload événement javascript.comment connecter l'événement beforeunload par défaut sur une page aspx?

Mon problème est que j'ai aussi besoin d'exécuter du code côté client (pour demander à l'utilisateur des modifications non enregistrées dans mon composant WebPart) sur Windows beforeunload event.

Comment puis-je y parvenir? Je veux dire laisser l'événement par défaut être tiré ainsi que d'appeler ma fonction aussi?

Appréciez toute aide.

Nikhil.

Répondre

2

Cela devrait être possible en recherchant un gestionnaire existant affecté à l'événement onbeforeunload et, le cas échéant, en enregistrant une référence avant de le remplacer par votre propre gestionnaire.

Votre partie Web peut émettre la sortie de script suivant pour le faire:

<script type="text/javascript"> 

// Check for existing handler 
var fnOldBeforeUnload = null; 
if (typeof(window.onbeforeunload) == "function") { 
    fnOldBeforeUnload = window.onbeforeunload; 
} 

// Wire up new handler 
window.onbeforeunload = myNewBeforeUnload; 

// Handler 
function myNewBeforeUnload() { 
    // Perform some test to determine if you need to prompt user 
    if (unsavedChanges == true) { 
     if (window.confirm("You have unsaved changes. Click 'OK' to stay on this page.") == true) { 
      return false; 
     } 
    } 

    // Call the original onbeforeunload handler 
    if (fnOldBeforeUnload != null) { 
     fnOldBeforeUnload(); 
    } 
} 

</script> 

Cela devrait vous permettre d'injecter votre propre logique dans la page et faire votre propre décision quant à ce que l'exécution du code lorsque la page déchargements .

Questions connexes