Event: Allow triggerHandler(beforeunload)

Fixes #14791
This commit is contained in:
Dave Methvin 2014-03-03 22:43:51 -05:00
parent 3a68c114e3
commit 06adf7c95d
3 changed files with 24 additions and 1 deletions

View File

@ -583,7 +583,7 @@ jQuery.event = {
// Support: Firefox 20+
// Firefox doesn't alert if the returnValue field is not set.
if ( event.result !== undefined ) {
if ( event.result !== undefined && event.originalEvent ) {
event.originalEvent.returnValue = event.result;
}
}

View File

@ -0,0 +1,18 @@
<!doctype html>
<html>
<script src="../../jquery.js"></script>
<script>
var called = false,
error = false;
window.onerror = function() { error = true; };
jQuery( window ).on( "beforeunload", function( event ) {
called = true;
return "maybe";
}).on( "load", function( event ) {
$( window ).triggerHandler( "beforeunload" );
window.parent.iframeCallback( called && !error );
});
</script>
</html>

View File

@ -2434,6 +2434,11 @@ testIframeWithCallback( "Focusing iframe element", "event/focusElem.html", funct
ok( isOk, "Focused an element in an iframe" );
});
testIframeWithCallback( "triggerHandler(onbeforeunload)", "event/triggerunload.html", function( isOk ) {
expect( 1 );
ok( isOk, "Triggered onbeforeunload without an error" );
});
// need PHP here to make the incepted IFRAME hang
if ( hasPHP ) {
testIframeWithCallback( "jQuery.ready synchronous load with long loading subresources", "event/syncReady.html", function( isOk ) {