By default, a Web Client runs in the main browser window, but it is possible to run the Web Client inside a Frame/IFrame embedded in another webpage.
To embed a Web Client solution into an IFrame, use the following HTML fragment inside the webpage where the Web Client solution is to be embedded:
Note: Make sure to provide a unique name for each IFrame within the webpage: the Servoy Web Client internals use the name to control page reloads when those occur. Failure to uniquely identify a specific IFrame may result in unexpected behavior.
When a Web Client solution is run inside an Frame or IFrame (here onwards just called frame) and the domain of the page into which the frame is embedded (for example: http://www.mycompany.com/pagewithframes.html) does not equal the domain from which the Web Client is hosted (for example http://mycompany.hostingcompany.com), there is a possible issue with the ability of storing HTTP Cookies.
Based on the settings of the browser, these so-called Third Party Cookies are blocked from storage. Internet Explorer does this by default, most other browsers allow it by default, but this can be turned off by the user.
The Web Client uses HTTP Cookies to save the position and location of dialogs and the functions application.setUserProperty(...) and application.getUserProperty(...) also utilize Cookies for string the User Property value. If the cookies cannot be stored, the Web client will continue to operate, but the position and sized of the dialogs and the value of User Properties will not be remembered.
The only remedy to the issue is configuring the browser to accept Third Party Cookies and this needs to be done by the user. As Internet Explorer does not allow Third Party Cookies by default, this browser is usually the one that causes Problems. Luckily, for Internet Explorer there is something that can be done by the developer of the webpage that is being displayed in the frame.
A Compact Privicy policy header is a specific header in the HTTP Response of a Web Client page, with a compact description of a Platform for Privacy Preferences (P3P) policy.
P3P is a standard for websites to provide the users of the website with information about the usage and possible storage of privacy related data. See http://www.w3.org/P3P/ for more information. Although the standard never really took off and isn't widely supported, it will come in handy in this scenario as Internet Explorer does implement it.
Having said all of the above, many sites skip the generation of a full P3P policy and just take a appropriate value from the many websites that discuss the use of third party cookies in Internet Explorer and move on. The description of the required configuration below uses such a value, but we encourage developers/admins to set it up properly.
The Filter is a small Java library and can be downloaded here: FilterP3P.jar. Place the downloaded jar file in <serverUrl>/application_server/server/webapps/ROOT/WEB-INF/lib (create the lib directory iif it doesn't yet exist).
Secondly, open <serverUrl>/application_server/server/webapps/ROOT/WEB-INF/web.xml and add the filter configuration shown below between the "</servlet-mapping>" and "</web-app>" tags.