Get URL Parameters from Client Script

Community Alums
Not applicable

Hello All,

I am trying to get the URL parameters from the onLoad Client script when catalog item is loaded, here we are using an issue where in few scenarios the complete URL is getting loaded before the client scripts are running where in some scenarios the URL is loading after the client scripts ran, and resulting in null parameter values.

Example :

 scenarios 1: URL is like (com.glideapp.servicecatalog_cat_item_view.do?v=1&&sysparm_id=SYS_ID&sysparm_myparm=SYS_ID)

Here parameter values are getting properly and URL is getting loaded at once.

scenarios 2: URL is like (nav_to.do?uri=%2Fcom.glideapp.servicecatalog_cat_item_view.do%3Fv%3D1%26%26sysparm_id%3Da86e23491b64ac906417542d1e4bcbe0%26sysparm_myparm%3D70d0e7a2db3d381089ab6e9d13961914)

Here parameter values are getting as null because first a portion of URL is getting loaded(service-now.com/nav_to.do) and then the remaining url is getting appended.

Is there a way to hold the client script or any other way to achieve this?

Regards,

Prudhvi  

1 ACCEPTED SOLUTION

Hi,

Use this updated code for getParameterValue function. This will work for both the views as well as Service Portal

    function getParameterValue(name) {
        var url = top.location.href;
        var value = new URLSearchParams(url).get(name);
        if (value) {
            return value;
        }
        if (!value) {
            var gUrl = new GlideURL();
            gUrl.setFromCurrent();
            value = gUrl.getParam("sysparm_id");
            return value;
        }
    }
Thank you,
Palani

View solution in original post

17 REPLIES 17

palanikumar
Mega Sage

Hi,

URL for scenario 1 and 2 are completely different. You may need to decode the URL parameters before using it. Share me the script you are using. I can help you to work for both scenarios.

Thank you,

Palani

Thank you,
Palani

Community Alums
Not applicable

Hi Palani,

Thanks for the response, please find the below script i am using.

find_real_file.png

Hi,

Use this updated code for getParameterValue function. This will work for both the views as well as Service Portal

    function getParameterValue(name) {
        var url = top.location.href;
        var value = new URLSearchParams(url).get(name);
        if (value) {
            return value;
        }
        if (!value) {
            var gUrl = new GlideURL();
            gUrl.setFromCurrent();
            value = gUrl.getParam("sysparm_id");
            return value;
        }
    }
Thank you,
Palani

Community Alums
Not applicable

Thanks Palani, it worked as expected.

Regards,

Prudhvi