Skip to main content
Raghava_Joijode
Level 2
Apr 4, 2017 12:11 PM UTC
Solved

Externalizing URL in JavaScript Use Api

Hi All,

How can I use Externalizer in JavaScript Use API, I can easily use it using Java API. But I need this in JavaScript Use API to add canonical tag in head section of pages for SEO purpose.

-Thanks,
Raghava

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
daniel_henriqu1
daniel_henriqu1Accepted solution
Level 4
Apr 4, 2017 12:27 PM UTC

Hi, Raghava.

You can use the sling global object (it is an instance of the SlingScriptHelper class) to obtain a reference to the Externalizer service.

Untested code:

var externalizer = sling.getService(Packages.com.day.cq.commons.Externalizer); var externalURL = externalizer.externalLink(resolver, resource.getPath());

Regards,

Daniel.

5 replies

daniel_henriqu1
daniel_henriqu1Accepted solution
Level 4
Apr 4, 2017 12:27 PM UTC

Hi, Raghava.

You can use the sling global object (it is an instance of the SlingScriptHelper class) to obtain a reference to the Externalizer service.

Untested code:

var externalizer = sling.getService(Packages.com.day.cq.commons.Externalizer); var externalURL = externalizer.externalLink(resolver, resource.getPath());

Regards,

Daniel.

Translate
Raghava_Joijode
Level 2
Apr 4, 2017 12:42 PM UTC

Hi Daniel,

Thanks for the inputs, I'll try implementing this. 

Translate
vjetty
Level 4
Apr 4, 2017 3:40 PM UTC

Hi, Raghava

Here is the example with CQ JS API - CQ.HTTP.externalize. You may try something like this.

 var currentPageContent = CQ.HTTP.get(CQ.HTTP.externalize(CQ.utils.WCM.getPagePath() + "/jcr:content.json"));

Thanks! 

Translate
daniel_henriqu1
Level 4
Apr 4, 2017 5:22 PM UTC

Vamsi, AFAIK CQ.HTTP is exposed by a client lib and therefore is not available to be used in a JavaScript Use (a server side element interpreted by Rhino).

Regards,

Daniel.

Translate
Raghava_Joijode
Level 2
Apr 6, 2017 6:49 AM UTC

Thanks Daniel it worked, 

Working code snip: 

            var externalizer = sling.getService(Packages.com.day.cq.commons.Externalizer);
            var externalURL = externalizer.externalLink(global.resource.getResourceResolver(),"publish", global.currentPage.getPath());

 

Thanks.

Translate