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]

Reply via email to