Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.
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