diff --git a/src/event.js b/src/event.js
index 8d4031211..ee1f3fcad 100644
--- a/src/event.js
+++ b/src/event.js
@@ -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;
}
}
diff --git a/test/data/event/triggerunload.html b/test/data/event/triggerunload.html
new file mode 100644
index 000000000..a7879c772
--- /dev/null
+++ b/test/data/event/triggerunload.html
@@ -0,0 +1,18 @@
+
+
+
+
+
diff --git a/test/unit/event.js b/test/unit/event.js
index 22f6dacef..84cad50ac 100644
--- a/test/unit/event.js
+++ b/test/unit/event.js
@@ -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 ) {