DIRECT LISTENER:
LISTENER IN CHILD FRAME:
Chrome Firefox Safari IE9 Conclusion Event listener on element in frame window.open immediate - inner inner inner inner inner! setTimeout function - inner inner inner inner inner! window.open - inner inner inner fail inner parent.setTimeout function - outer inner inner inner inner? window.open - outer inner outer fail ... parent.open immediate - inner inner inner inner inner! setTimeout function - inner inner inner inner inner! parent.function - inner outer outer outer outer? parent.open - inner outer inner fail ... parent.setTimeout function - outer inner inner inner inner? parent.open - outer outer outer fail outer Event listener on element in outer page window.open immediate - outer outer outer outer outer! setTimeout function - inner inner inner inner inner! window.open - inner inner inner fail inner parent.setTimeout function - outer inner inner inner inner? window.open - outer inner outer fail ... parent.open immediate - outer outer outer outer outer! setTimeout function - inner inner inner inner inner! parent.function - inner outer outer outer outer? parent.open - inner outer inner fail ... parent.setTimeout function - outer inner inner inner inner? parent.open - outer outer outer fail outer Event listener is script in inner frame attached to element in outer page window.open immediate - outer outer outer fail outer setTimeout function - inner inner inner fail inner window.open - inner inner inner fail inner parent.setTimeout function - outer inner inner fail ... window.open - outer inner outer fail ... parent.open immediate - outer outer outer fail outer setTimeout function - inner inner inner fail inner parent.function - inner outer outer fail ... parent.open - inner outer inner fail ... parent.setTimeout function - outer inner inner fail ... parent.open - outer outer outer fail outer CHROME: event handlers set the entry script settings object based on the element they fired on setTimeout adds an entry script settings object based on the global it was called on FIREFOX: event handlers set the entry script settings object based on the element they fired on setTimeout adds an entry script settings object based on the object passed to it: if it's a script, then it's that script's settings object, otherwise, it's the settings object of the global from which the object comes SAFARI: event handlers set the entry script settings object based on the element they fired on setTimeout adds an entry script settings object based on the object passed to it: if it's a script, then it's that script's settings object, otherwise, it's the settings object of the global from which the setTimeout comes IE9: event handlers set the entry script settings object based on the element they fired on setTimeout adds an entry script settings object based on the object passed to it: if it's a script, then it's that script's settings object, otherwise, the timeout doesn't fire CONCLUSION: event handlers set the entry script settings object based on the element they fired on setTimeout() adds an entry script settings object based on the object passed to it: if it's a script, then it's that script's settings object, otherwise it's the settings object of the global object relating to object passed to setTimeout.