PageSourceSearch

https://www.thermofisher.com/search/static/resources/js/signals.min.js

js thermofisher.com collected 2026-09-24 08:27:24 UTC 7,838 bytes, 1 lines download raw bytes

1function getAttr(e,t){return e.getAttribute(t)}if(void 0===NS)var NS=function(e){"use strict";function t(){}return function(r){var a,i=r.split("."),n=e,s=null;for(a=0;a<i.length;++a)if(s=i[a],void 0===n[s])n[s]=new t,n=n[s];else{if(n[s]instanceof t==!1)throw new Error("Non Namespace Object exists, cannot create namespace.");n=n[s]}return n}}(this);if(void 0===NS)var NS=function(e){"use strict";function t(){}return function(r){var a,i=r.split("."),n=e,s=null;for(a=0;a<i.length;++a)if(s=i[a],void 0===n[s])n[s]=new t,n=n[s];else{if(n[s]instanceof t==0)throw new Error("Non Namespace Object exists, cannot create namespace.");n=n[s]}return n}}(this);NS("thermofisher.search").SignalsStatic=function(){var e,t="signals_static";return{init:function(){e=this,console.log(t+" - init() function called"),e.initialized||e.bindSignalCapture(),e.initialized=!0},bindSignalCapture:function(){console.log(t+" - bindSignalCapture() function called"),new MutationObserver(function(t){t.forEach(function(t){if("childList"===t.type&&t.target&&t.target.querySelectorAll){var r=t.target.querySelectorAll(".lw_signal_process:not(.signal_click)");Array.from(r).forEach(function(t){t.classList.add("signal_click"),t.addEventListener("click",function(){e.signalCapture(t)})})}})}).observe(document.body,{childList:!0,subtree:!0,attributes:!0,characterData:!0})},signalCapture:function(r){console.log(t+" - signalCapture() function called");var a=r,i=[],n=new Array;const s=getAttr(a,"data-signal_type");s?s.replace(/ /g,"").split(",").filter(function(e){return void 0!==e&&""!==e&&null!=e}).forEach(function(e){n.push(e)}):n.push("click"),n.forEach(function(e){var t=getAttr(a,"data-doc_id"),n=getAttr(a,"data-product_qty"),s=getAttr(a,"data-price"),o=t?t.replace(/ /g,"").split(","):void 0,c=n?n.replace(/ /g,"").split(","):void 0,l=s?s.split(","):void 0;if(o&&o.length>1)for(var u=0;u<o.length;u++){var p={};p.params={},p.type=e,p.params.doc_id=o[u],c&&c.length==o.length&&(p.params.product_qty=c[u]),l&&l.length==o.length&&(p.params.price=l[u].trim()),thermofisher.search.SignalsStatic.setupSignalObject(r,i,p,!1)}else{var p={};p.params={},p.type=e,thermofisher.search.SignalsStatic.setupSignalObject(r,i,p,!1)}}),setTimeout(function(){e.postSignal(i)},100)},setupSignalObject:function(e,r,a,i){var n=e;if(void 0!==getAttr(n,"data-parameters")){var s=getAttr(n,"data-parameters").replace(/ /g,"").split(",");console.log(t+" - signalCapture() - capturing parameters: "+s),thermofisher.search.SignalsStatic.captureVisitorInfo(a.params),thermofisher.search.SignalsStatic.captureAppInsigtsInfo(a.params);for(var o=0;o<s.length;o++){var c=s[o],l=getAttr(n,"data-"+c);void 0!==l?(a.params[c]||(a.params[c]=l),"query"===c?(a.query=a.params[c],delete a.params[c]):"fusion_query_id"===c?"request"!==a.type&&(a.fusion_query_id=a.params[c],delete a.params[c]):"doc_id"===c?(a.params.docId=a.params[c],delete a.params[c]):"app_id"!==c||"tf-search-ui"!==a.params[c]&&"tf-search-guided-search-ui"!==a.params[c]&&"tf-search-cas-ui"!==a.params[c]||thermofisher.search.SignalsStatic.captureSelectedFilters(a.params)):(console.log(t+" - signalCapture() - data-parameters key '"+c+"' not found"),i=!0)}thermofisher.search.SignalsStatic.captureSearchState(a),i||r.push(a)}},captureSearchState:function(e){console.log(t+" - captureSearchState() function called");var r=window.location.pathname,a=-1!==r.indexOf("/search/results")||-1!==r.indexOf("/search/browse")||-1!==r.indexOf("/search/cas"),i=-1!==r.indexOf("/order/catalog"),n=-1!==r.indexOf("/store/cart");var s=e.type,o=(e.params,e.params.docId),c=e.fusion_query_id,l=e.query,u=e.params.category,p="click"===s,g="add_to_cart"===s,f="remove_from_cart"===s,d="checkout"===s,h=o,m=o&&c,S=localStorage.getItem("thermofisher.search.state"),v=S?JSON.parse(S):{},_=v.doc_id?v.doc_id:[],y=v.fusion_query_id?v.fusion_query_id:{},w=v.query?v.query:{},q=v.gpt_category?v.gpt_category:{};if(a&&p&&m){if(_.push(o),y[o]=c,w[o]=l,q[o]=u,_.length>20){var b=_.shift();b!=o&&(delete y[b],delete w[b],delete q[b])}v.doc_id=_,v.fusion_query_id=y,v.query=w,v.gpt_category=q,localStorage.setItem("thermofisher.search.state",JSON.stringify(v))}if(i&&g&&h){var A=r.split("/")[4];o=A||o,y[o]&&(e.fusion_query_id=y[o]),w[o]&&(e.query=w[o]),q[o]&&(e.params.category=q[o])}n&&(g||f||d)&&h&&(y[o]&&(e.fusion_query_id=y[o]),w[o]&&(e.query=w[o]),q[o]&&(e.params.category=q[o]))},captureAppInsigtsInfo:function(e){console.log(t+" - captureAppInsigtsInfo() function called");var r=(location.host,location.href),a=document.title,i=function(){var e=function(e){return e.test(window.navigator.userAgent)};switch(!0){case e(/edg/i):return"Microsoft Edge";case e(/trident/i):return"Microsoft Internet Explorer";case e(/firefox|fxios/i):return"Mozilla Firefox";case e(/opr\//i):return"Opera";case e(/ucbrowser/i):return"UC Browser";case e(/samsungbrowser/i):return"Samsung Browser";case e(/chrome|chromium|crios/i):return"Google Chrome";case e(/safari/i):return"Apple Safari";default:return"Other"}}(),n=function(){var e=function(e){return e.test(window.navigator.userAgent)};switch(!0){case e(/macintosh|macintel|macppc|mac68k/i):return"Mac OS";case e(/iphone|ipad|ipod/i):return"iOS";case e(/win32|win64|windows|wince/i):return"Windows";case e(/linux/i):return"Linux";case e(/android/i):return"Android";default:return"Other"}}(),s="none";s=/Mobi/i.test(navigator.userAgent)?"Mobile":"Computer";var o=document.referrer,c=getMasterDomain();e.url=r,e.page_title=a,e.browser_name=i,e.os_name=n,e.os_device=s,e.referrer_domain=o,e.domain=c}
1,captureVisitorInfo:function(e){console.log(t+" - captureVisitorInfo() function called");var r=getCookie("s_ecid");r&&(e.user_id=r,e.session=r);var a=_lt.user;a&&a.isLoggedIn&&(e.customer_id=a.userlogin)},captureSelectedFilters:function(e){console.log(t+" - captureSelectedFilters() function called");var r=[],a=[];var i="gpt",n=thermofisher.search.SignalsStatic.getUrlParameter(i);if(n){var s=n,o=i+"/"+s;a.push(i),r.push(o)}i="application";var c=thermofisher.search.SignalsStatic.getUrlParameter(i);if(c){var s=c,o=i+"/"+s;a.push(i),r.push(o)}i="filter";var l=thermofisher.search.SignalsStatic.getUrlParameter(i);if(l){l.split("ĉ").forEach(function(e){"þ"==e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.split(":")[0],i=e.split(":")[1],n=t+"/"+i;a.push(t),r.push(n)})}e.filter=r,e.filter_field=a},getUrlParameter:function(e){var t=new RegExp("[?&]"+e+"=([^&#]*)").exec(window.location.href);return null==t?null:decodeURI(t[1])||0},requestEvents:function(e){if(console.log(t+" -  requestEvents() function called with 'query':'"+e+"'"),e){var r=[],a={},i=new Date;a.timestamp=i.toUTCString(),a.params={app_id:"tf-search-static",element_clicked:"searchbar-submit"},a.query=e,a.type="request",r.push(a),thermofisher.search.SignalsStatic.postSignal(r)}else console.warn(t+" - requestEvents() - not posting request signal data due to error: keyword not found.")},postSignal:function(e){console.log(t+" - postSignal() function called with payload: "+JSON.stringify(e));var r=getCookie("CK_ISO_CODE");navigator.cookieEnabled&&r||(r=window.location.origin.includes("thermofisher.cn")?"cn":"us");var a=getCookie("CK_LANG_CODE");navigator.cookieEnabled&&a||(a=window.location.origin.includes("thermofisher.cn")?"zh":"en");var i="/search/api/signal?countryCode="+r+"&language="+a;console.log(t+" - postSignal() - posting to signal service API: "+i);var n=new XMLHttpRequest;n.open("POST",i,!0),n.setRequestHeader("Content-Type","application/json"),n.onreadystatechange=function(){if(4===n.readyState)if(n.status>=200&&n.status<300)console.log(t+" - postSignal() - response:"+n.responseText),n.responseText||console.log(t+" - postSignal() - signal post unsuccessful!");else{var e=n.status+": "+n.statusText;console.error(t+" - postSignal() - error posting to signal service API "+i+" - "+e)}},n.send(JSON.stringify(e))}}}();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.