This test checks that onload events fire on iframe and object elements when their contents finish loading, and that these are separate event objects from those that fire on the body inside the frame. If it passes, you will see 6 blocks below, each with a three-line message that ends in false.
Fired load event on body inside iframe
Fired event on iframe even though default was prevented
Outer event same as inner: false
------
Fired load event on body inside iframe
Fired event on iframe
Outer event same as inner: false
------
Fired load event on body inside object
Fired event on object even though default was prevented
Outer event same as inner: false
------
Fired load event on body inside object
Fired event on object even though propagation was stopped
Outer event same as inner: false
------
Fired load event on body inside object
Fired event on object even though propagation was stopped
Outer event same as inner: false
------
Fired load event on body inside object
Fired event on object
Outer event same as inner: false
------

