Externalizing URL in JavaScript Use Api | Community
Skip to main content
Raghava_Joijode
Level 2
April 4, 2017
Solved

Externalizing URL in JavaScript Use Api

  • April 4, 2017
  • 5 replies
  • 3368 views

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.
Best answer by daniel_henriqu1

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
April 4, 2017

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.

Raghava_Joijode
Level 2
April 4, 2017

Hi Daniel,

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

vjetty
Level 4
April 4, 2017

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! 

daniel_henriqu1
Level 4
April 4, 2017

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.

Raghava_Joijode
Level 2
April 6, 2017

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.