Loading
First and Third Party Script Info

First And Third Party Script Info

List all scripts using PerformanceResourceTiming API and separating them by first and third party

More Info (opens in a new tab)

Info On CORS (opens in a new tab)

Snippet

// ex: katespade.com - list firsty party subdomains in HOSTS array const HOSTS = ["assets.katespade.com"];   function getScriptInfo() {  const resourceListEntries = performance.getEntriesByType("resource");  // set for first party scripts  const first = [];  // set for third party scripts  const third = [];    resourceListEntries.forEach((resource) => {  // check for initiator type  const value = "initiatorType" in resource;  if (value) {  if (resource.initiatorType === "script") {  const { host } = new URL(resource.name);  // check if resource url host matches location.host = first party script  if (host === location.host || HOSTS.includes(host)) {  const json = resource.toJSON();  first.push({ ...json, type: "First Party" });  } else {  // add to third party script  const json = resource.toJSON();  third.push({ ...json, type: "Third Party" });  }  }  }  });    const scripts = {  firstParty: [{ name: "no data" }],  thirdParty: [{ name: "no data" }],  };    if (first.length) {  scripts.firstParty = first;  }    if (third.length) {  scripts.thirdParty = third;  }    return scripts; }   const { firstParty, thirdParty } = getScriptInfo();   console.groupCollapsed("FIRST PARTY SCRIPTS"); console.table(firstParty); console.groupEnd();   console.groupCollapsed("THIRD PARTY SCRIPTS"); console.table(thirdParty); console.groupEnd();