Thank you! I see how this work now.
On Sun, May 4, 2008 at 10:17 PM, Eelco Hillenius <[EMAIL PROTECTED]>
wrote:
> On Fri, May 2, 2008 at 4:59 PM, Matthew Young <[EMAIL PROTECTED]> wrote:
> > I only want to find out the user's timezone.
> > setGatherExtendedBrowserInfo(true) redirect page take too long,
> sometimes
> it
> > stays on the screen many seconds.
>
> You can often best do this in a custom way by either creating your own
> variant of WebRequestCycle#newClientInfo or e.g. by integrating it in a
> login form for instance (which of course only works for applications where
> users have to be logged in before they get to the point where your browser
> info matters).
>
> That roughly works like this:
>
> Java:
>
> pubic LoginForm(String id) {
> super(id, new CompoundPropertyModel(new ClientPropertiesBean()));
> add(new HiddenField("navigatorAppName"));
> add(new HiddenField("navigatorAppVersion"));
> add(new HiddenField("navigatorAppCodeName"));
> add(new HiddenField("navigatorCookieEnabled"));
> add(new HiddenField("navigatorJavaEnabled"));
> add(new HiddenField("navigatorLanguage"));
> add(new HiddenField("navigatorPlatform"));
> add(new HiddenField("navigatorUserAgent"));
> add(new HiddenField("screenWidth"));
> add(new HiddenField("screenHeight"));
> add(new HiddenField("screenColorDepth"));
> add(new HiddenField("utcOffset"));
> ...
>
> HTML template:
>
> <wicket:head><!-- if in a panel -->
> <script language="javascript" src="/html/static/js/rollover.js"></script>
> </wicket:head>
> ...
> <form name="login" wicket:id="login" style="margin: 0px; "
> onsubmit="submitform(this)">
> <span style="display: hidden;">
> <input type="hidden" name="navigatorAppName"
> wicket:id="navigatorAppName"
> value="test" />
> <input type="hidden" name="navigatorAppVersion"
> wicket:id="navigatorAppVersion" value="test" />
> <input type="hidden" name="navigatorAppCodeName"
> wicket:id="navigatorAppCodeName" />
> <input type="hidden" name="navigatorCookieEnabled"
> wicket:id="navigatorCookieEnabled" />
> <input type="hidden" name="navigatorJavaEnabled"
> wicket:id="navigatorJavaEnabled" />
> <input type="hidden" name="navigatorLanguage"
> wicket:id="navigatorLanguage" />
> <input name="navigatorPlatform" type="hidden"
> wicket:id="navigatorPlatform" />
> <input name="navigatorUserAgent" type="hidden"
> wicket:id="navigatorUserAgent" />
> <input name="screenWidth" type="hidden" wicket:id="screenWidth" />
> <input name="screenHeight" type="hidden" wicket:id="screenHeight" />
> <input name="screenColorDepth" type="hidden"
> wicket:id="screenColorDepth"
> />
> <input name="utcOffset" type="hidden" wicket:id="utcOffset" />
> </span>
> ...
> </form>
> ...
>
> Login.js:
>
> function submitform(form) {
> form.navigatorAppName.value = window.navigator.appName;
> form.navigatorAppVersion.value = window.navigator.appVersion;
> form.navigatorAppCodeName.value = window.navigator.appCodeName;
> var cookieEnabled = (window.navigator.cookieEnabled)? true : false;
> if (typeof window.navigator.cookieEnabled == "undefined" &&
> !cookieEnabled)
> {
> document.cookie = "wickettestcookie";
> cookieEnabled = (document.cookie.indexOf("wickettestcookie")!=-1)? true
> :
> false;
> }
> form.navigatorCookieEnabled.value = cookieEnabled;
> form.navigatorJavaEnabled.value = window.navigator.javaEnabled();
> form.navigatorLanguage.value = window.navigator.language ?
> window.navigator.language : window.navigator.userLanguage;
> form.navigatorPlatform.value = window.navigator.platform;
> form.navigatorUserAgent.value = window.navigator.userAgent;
> if (window.screen) {
> form.screenWidth.value = window.screen.width;
> form.screenHeight.value = window.screen.height;
> form.screenColorDepth.value = window.screen.colorDepth;
> }
> form.utcOffset.value = (new Date().getTimezoneOffset() / -60);
> return true;
> }
>
>
> That should give you an idea :-)
>
> Eelco
>