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.