1. A computer implemented method for providing bi-directional communication between a first network domain and a second network domain, the method comprising: receiving first data at the second network domain, the first data providing one or more functions, the second network domain being different from the first network domain, the second network domain being operated by or on behalf of a second party, the first network domain being operated by or on behalf of a first party, the second party being different from the first party; receiving a first message at the second network domain from the first network domain via an application in bi-directional communication with both network domains, the application providing data associated with at least the first and second network domains to be simultaneously displayed in a user interface on a user device, the first message being provided at the second network domain in response to the one or more functions being invoked, and the first message identifying the one or more functions; responsive to receiving the first message, executing the one or more functions at a computing device associated with the second network domain to create an event listener using at least a portion of the application data associated with the second network domain, the event listener providing selective communication between the first network domain and the second network domain; and responsive to executing the one or more functions, sending a second message to the first domain via the application, the second message indicating that the one or more functions have been executed, the second message being operable to invoke and execute one or more call back functions.