Get querystring from Node Red Dashboard URL

We're trying to pick up a query-string parameter from a node red dashboard URL so that on load we can fetch some relevant information from other API's.

for instance NR DB url is

http://192.168.0168:1880/ui/#!/0?socketid=ulqQqlNfnVd11haOAAAT&mcID=H01

we want to strip out the mcID=H01.

In JS we would normally use either

let params = (new URL(document.location)).searchParams;
let name = params.get("mcID")

or more basic

var mcid='';   
var url = window.location.href
    .slice(window.location.href.indexOf("?") + 1)
    .split("&");

  for (var i = 0; i < url.length; i++) {
    var urlparam = url[i].split("=");
    if (urlparam[0] == 'mcID') {
      mcid= urlparam[1];
    }

Any suggestions?

Try

<script>
var url = window.location.href
var params =  new URLSearchParams("?" + url.split("?")[1])
var mcID = params.get("mcID")
this.scope.send({payload: mcID});
</script>

example flow

[{"id":"70df2e550e8e6350","type":"debug","z":"743cc0234f1851f1","name":"debug 387","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":770,"y":240,"wires":[]},{"id":"09a2781b78b92080","type":"ui_template","z":"743cc0234f1851f1","group":"2d4fe667.28f8ba","name":"","order":15,"width":0,"height":0,"format":"<script>\nvar url = window.location.href\nvar params =  new URLSearchParams(\"?\" + url.split(\"?\")[1])\nvar mcID = params.get(\"mcID\")\nthis.scope.send({payload: mcID});\n</script>","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":true,"templateScope":"local","className":"","x":560,"y":240,"wires":[["70df2e550e8e6350"]]},{"id":"2d4fe667.28f8ba","type":"ui_group","name":"demo","tab":"1caa8458.b17814","order":2,"disp":true,"width":"18","collapse":false,"className":""},{"id":"1caa8458.b17814","type":"ui_tab","name":"Demo","icon":"dashboard","order":2,"disabled":false,"hidden":false}]

Works perfectly, Thank you

I think this should work to

<script>
    var url = window.location.href;
    var params = new URLSearchParams(url);
    var mcID = params.get("mcID");
    this.scope.send({payload: mcID});
</script>

so that on load we can fetch some relevant information from other API's.

Just a side-note - the ui-control node provides the url parameters, so in case you want to use it for API calls in other nodes, it is already available.