Hide or show blocks based on a record's attributes

Can you try with this slightly different version ?

document.addEventListener('DOMContentLoaded', function() {
  var waitForData = setInterval(function () {
    if (typeof $ != 'undefined') {
      const recordId = getUrlParam('recordId');
      if (window.records && window.records[recordId] && window.records[recordId].record && window.records[recordId].record.fields && window.records[recordId].record.fields['markedfinal'] === 'true') {
        var form1 = document.getElementById('markfinalbutton');
        form1.style.display = 'none';
        clearInterval(waitForData);
        }
      }
    }, 100);

    function getUrlParam(name) {
        const url = new URL(window.location.href);
        let param;
        for(var key of url.searchParams.keys()) {
            if(key.toLowerCase() === name.toLowerCase()) {
            param = url.searchParams.get(name);
            break;
            }
        }
    
        if(!param && name.toLowerCase() === 'recordid') {
            param = getRecordIdFromPath();
        }
        return param;
    }
    
    function getRecordIdFromPath() {
        let pathName = window.location.pathname;
        if (pathName.indexOf('/r/rec') !== -1) {
            pathName = pathName.substr(pathName.indexOf('/r/rec') + 3);
            if (pathName.indexOf("/") !== -1) {
            pathName = pathName(0, pathName.indexOf('/'))
            }
            return pathName;
        }
        return undefined;
    }
});