Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

how to get currentPage object in javascript, as javascript file resides in clientlibs folder of the component. please give me example code snippets.

Avatar

Level 4
 
1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @karthick1356 

When you say you want currentPage object in JS which is inside your clientlib, for what purpose you need it? You will not be able to get the currentPage object in JS as the context will not be avilable on clientside and it's either available on HTL or Java which is on server side.


If you can provide the use case we can come with a concrete answer.

 

Thanks!

View solution in original post

7 Replies

Avatar

Correct answer by
Community Advisor

Hi @karthick1356 

When you say you want currentPage object in JS which is inside your clientlib, for what purpose you need it? You will not be able to get the currentPage object in JS as the context will not be avilable on clientside and it's either available on HTL or Java which is on server side.


If you can provide the use case we can come with a concrete answer.

 

Thanks!

Avatar

Level 4
I was trying to get language of the page. is there any possible way to get language in the frontend?

Avatar

Community Advisor

@karthick1356 
You can get it in Backend and put it in HTL as a hidden attribute on page:
<div id="some-id" data-page-lang="${model.lang}">


Then use the value in JS:
var lang = $("#some-id").data("page-lang");

 

Hope this help!

Thanks!

Avatar

Level 4
thanks letme try. is there any way to get language other then jcr:language

Avatar

Community Advisor

Hi @karthick1356,

 

you can use Javascript USE API to get all the values you need.

 

Sample code:

use(function () {
    var Constants = {
        DESCRIPTION_PROP: "jcr:description",
        DESCRIPTION_LENGTH: 50
    };

    var title = currentPage.getNavigationTitle() || currentPage.getTitle() || currentPage.getName();
    var description = properties.get(Constants.DESCRIPTION_PROP, "").substr(0, Constants.DESCRIPTION_LENGTH);

    return {
        title: title,
        description: description
    };
});

Reference page: https://experienceleague.adobe.com/docs/experience-manager-htl/using/htl/use-api-javascript.html?lan...

 

Hope this helps.

 

Thanks,

Kiran Vedantam