Thanks for the reply. I'd rather keep the script in my markup if
possible. Is there any way to do this so that I don't have to output
the entire Javascript block from my Java code?

Thanks.

Neil.

On Mon, Jun 22, 2009 at 6:24 AM, Igor Vaynberg<[email protected]> wrote:
> output the entire javascript block as a string using new
> label().setescapemodelstrings(false)
>
> -igor
>
> On Sun, Jun 21, 2009 at 11:18 AM, Neil Ferguson<[email protected]> wrote:
>> Hi all.
>>
>> I'm trying to set a string literal in some Javascript, in order to try
>> and pass a page URL to Google Analytics. I've tried creating a panel
>> with the following markup, and putting it just before the end of my
>> body tag:
>>
>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
>> <html xmlns="http://www.w3.org/1999/xhtml";
>> xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd";
>>>
>>        <body>
>>            <wicket:panel>
>>                <script type="text/javascript">
>>                                var gaJsHost = (("https:" == 
>> document.location.protocol) ?
>> "https://ssl."; : "http://www.";);
>>                                document.write(unescape("%3Cscript src='" + 
>> gaJsHost +
>> "google-analytics.com/ga.js'
>> type='text/javascript'%3E%3C/script%3E"));
>>                    </script>
>>                <script type="text/javascript">
>>                                try {
>>                                var pageTracker = 
>> _gat._getTracker("TRACKINGID");
>>                                pageTracker._trackPageview('<span 
>> wicket:id="analyticspagename"></span>');
>>                                } catch(err) {}
>>                    </script>
>>                </wicket:panel>
>>        </body>
>> </html>
>>
>> As you can see, I'm trying to set the parameter of the _trackPageview
>> method (or function, whatever it's called in Javascript). I've tried
>> doing this using a span tag, as you can see, but it doesn't work, and
>> I get the following message:
>>
>> "WicketMessage: The component(s) below failed to render. A common
>> problem is that you have added a component in code but forgot to
>> reference it in the markup (thus the component will never be
>> rendered)."
>>
>> The Java code for my panel looks like the following:
>>
>> public class FooterPanel extends Panel {
>>
>>        private static final long serialVersionUID = 9196070061210793618L;
>>
>>        public FooterPanel(String id, String analyticsPagename) {
>>                super(id);
>>                Label label = new Label("analyticspagename", 
>> analyticsPagename);
>>                label.setRenderBodyOnly(true);
>>                add(label);
>>        }
>>
>> }
>>
>> I didn't really expect this to work, but I can't think of a better
>> way. I'm sure that I'm missing something really obvious here, so can
>> anyone help?
>>
>> BTW, I'm really enjoying using Wicket. I have a severe allergy to XML,
>> so it's brilliant.
>>
>> Thanks.
>>
>> Neil.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to