22 Sep
|
Tredence
|
India
var googleJobPosting = false; $conv = jQuery; $conv(document).ready(function () $(.wrapper).mask(); $(.copy-year).html(new Date().getFullYear().toString()); $(#redirectHash).val(window.location.hash.slice(1, window.location.hash.length)); ); function initialieFB() FB.init(appId: 1153447089645129, status: true, cookie: true, xfbml: true, oauth: true); window.fbAsyncInit = function () function initilizeFacebook(response) if (response.authResponse) FB.api(/me, function (info) ); else FB.getLoginStatus(initilizeFacebook); FB.Event.subscribe(auth.statusChange, initilizeFacebook); ; $.getScript(//connect.facebook.net/en_US/all.js).done(function () initialieFB(); ); function stopRKey(evt) var evt = (evt) evt : ((event) event : null); var node = (evt.target) evt.target : ((evt.srcElement) evt.srcElement : null); if ((evt.keyCode == 13) && (node.type == text)) return false; var getRefValue = function () var refValue = Metronic.getURLParameter(ref); if (refValue) return refValue; return ; ; var getHashValue = function () var hashLoc = window.location.hash; if (hashLoc) if (hashLoc.indexOf(/) > -1) return hashLoc.substring(1, hashLoc.indexOf(/)); else return hashLoc.substring(1); return ; ; document.onkeypress = stopRKey; function headerLoadSuccess() function footerLoadSuccess() (function () /* PRD-8377: auto-select black/white TEXT for buttons filled with the tenant brand colour (btn-1-color-theme; btn-2-color-theme on hover) so text contrast passes for every tenant WITHOUT changing the brand colour. WCAG relative-luminance threshold 0.179 picks whichever of black/white has the higher contrast against the brand bg. Reads the c:out-escaped colour and validates it as hex (no XSS, no innerHTML). */ var el = document.getElementById(rh-brand-colour); var brand = el el.getAttribute(data-colour) : ; function safeText(hex) if (!hex) return ; hex = hex.trim().replace(/^#/, ); if (hex.length === 3)
hex = hex.replace(/(.)/g, $1$1); if (!/^[0-9a-fA-F]6$/.test(hex)) return ; var ch = [0, 2, 4].map(function (i) var c = parseInt(hex.substr(i, 2), 16) / 255; return c <= 0.03928 c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4); ); var lum = 0.2126 * ch[0] + 0.7152 * ch[1] + 0.0722 * ch[2]; return lum > 0.179 #000000 : #FFFFFF; var txt = safeText(brand); if (txt) var css = .btn-1-color-theme, + .btn-2-color-theme:active:hover,.btn-2-color-theme:active,.btn-2-color-theme:hover + color: + txt + !significant;; var st = document.createElement(style); st.appendChild(document.createTextNode(css)); document.body.appendChild(st); )(); (function () /* PRD-8377: the company-configured privacy/consent content renders a stack of
section headings (Privacy Notice, Data Collection, …) that skip from the page
, failing heading order. Re-level any
/
/
inside the privacy/consent content up by one (h4->h3, h5->h4, h6->h5) while preserving the visual size via a Bootstrap .hN class, so the outline is sequential. Runs on load and watches for the consent step, which renders after navigation. No text is changed — only heading tags. */ function relevel() var sel = .terms-content h4:not([data-rh8377]),.terms-content h5:not([data-rh8377]),.terms-content h6:not([data-rh8377]), + .dpdp-modal-body h4:not([data-rh8377]),.dpdp-modal-body h5:not([data-rh8377]),.dpdp-modal-body h6:not([data-rh8377]); var hs = document.querySelectorAll(sel); for (var i = 0; i < hs.length; i++)
var h = hs[i]; var lvl = parseInt(h.tagName.charAt(1), 10); var n = document.createElement(h + Math.max(3, lvl - 1)); n.className = (h.className h.className + : ) + h + lvl; // keep the original visual size if (h.id) n.id = h.id; n.setAttribute(data-rh8377, 1); n.innerHTML = h.innerHTML; h.parentNode.replaceChild(n, h); function run() try relevel(); catch (e) run(); if (window.MutationObserver) var deb; new MutationObserver(function () clearTimeout(deb); deb = setTimeout(run, 150); ) .observe(document.documentElement, childList: true, subtree: true ); )(); (function () /* PRD-8377 (QA follow-up): the company-configured careers content (config.custom_careersite_text, rendered raw into the company-info panel on #detail/#list) can embed an with no title, failing frames must have a title (WCAG 4.1.2 / 2.4.1). Give EVERY title-less iframe on the career page an accessible name: video embeds get video, any other embed gets a generic Embedded content. The functional PRD-6611 consent iframe already ships a static title (dpdpConsentModal.tpl) so it is not title-less and is left as-is. Runs on load and re-runs on SPA re-render. Only the title attribute is set. */ var COMPANY = (Tredence || ).trim(); var VIDEO = /(:youtube.com|youtu.be|vimeo.com|player.|/embed/)/i; function titleFrames() var frames = document.querySelectorAll(iframe:not([title])); for (var i = 0; i < frames.length; i++) var src = frames[i].getAttribute(src) || ; var name = VIDEO.test(src) (COMPANY (COMPANY + video) : Company video) : Embedded content; frames[i].setAttribute(title, name); function run() try titleFrames(); catch (e) run(); if (window.MutationObserver) var deb; new MutationObserver(function () clearTimeout(deb); deb = setTimeout(run, 150); ) .observe(document.documentElement, childList: true, subtree: true ); )();
📌 Tredence Careers | Latest jobs at Tredence - Ripplehire.com (India)
🏢 Tredence
📍 India