Last active
February 16, 2024 07:04
-
-
Save vwo-kb/f789677c0e3e463fed1b08cfc029b126 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script> | |
//DO NOT make any changes to smart code except for entering your account id | |
window._vwo_code || | |
(function () { | |
var account_id = { account_id }, | |
version = 2.0, | |
settings_tolerance = 2000, | |
hide_element = "body", | |
hide_element_style = | |
"opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important", | |
/* DO NOT EDIT BELOW THIS LINE */ | |
f = false, | |
w = window, | |
d = document, | |
v = d.querySelector("#vwoCode"), | |
cK = "_vwo_" + account_id + "_settings", | |
cc = {}; | |
try { | |
var c = JSON.parse( | |
localStorage.getItem("_vwo_" + account_id + "_config") | |
); | |
cc = c && typeof c === "object" ? c : {}; | |
} catch (e) {} | |
var stT = cc.stT === "session" ? w.sessionStorage : w.localStorage; | |
code = { | |
use_existing_jquery: function () { | |
return typeof use_existing_jquery !== "undefined" | |
? use_existing_jquery | |
: undefined; | |
}, | |
library_tolerance: function () { | |
return typeof library_tolerance !== "undefined" | |
? library_tolerance | |
: undefined; | |
}, | |
settings_tolerance: function () { | |
return cc.sT || settings_tolerance; | |
}, | |
hide_element_style: function () { | |
return "{" + (cc.hES || hide_element_style) + "}"; | |
}, | |
hide_element: function () { | |
return typeof cc.hE === "string" ? cc.hE : hide_element; | |
}, | |
getVersion: function () { | |
return version; | |
}, | |
finish: function () { | |
if (!f) { | |
f = true; | |
var a = d.getElementById("_vis_opt_path_hides"); | |
if (a) a.parentNode.removeChild(a); | |
} | |
}, | |
finished: function () { | |
return f; | |
}, | |
load: function (a) { | |
var s = this.getSettings(), | |
b = d.createElement("script"), | |
t = this; | |
if (s) { | |
b.textContent = s; | |
d.getElementsByTagName("head")[0].appendChild(b); | |
if (!w.VWO || VWO.caE) { | |
stT.removeItem(cK); | |
t.load(a); | |
} | |
} else { | |
b.fetchPriority = "high"; | |
b.src = a; | |
b.type = "text/javascript"; | |
b.onerror = function () { | |
_vwo_code.finish(); | |
}; | |
d.getElementsByTagName("head")[0].appendChild(b); | |
} | |
}, | |
getSettings: function () { | |
try { | |
var i = stT.getItem(cK); | |
if (!i) { | |
return; | |
} | |
i = JSON.parse(i); | |
if (Date.now() > i.e) { | |
stT.removeItem(cK); | |
return; | |
} | |
return i.s; | |
} catch (e) { | |
return; | |
} | |
}, | |
init: function () { | |
if (d.URL.indexOf("__vwo_disable__") > -1) return; | |
var sT = this.settings_tolerance(); | |
w._vwo_settings_timer = setTimeout(function () { | |
_vwo_code.finish(); | |
stT.removeItem(cK); | |
_vwo_code.removeLoaderAndOverlay(); | |
}, sT); | |
var filterConfig = this.filterConfig; | |
if (!filterConfig || filterConfig.filterTime === "balanced") { | |
var cS = d.currentScript, | |
a = d.createElement("style"), | |
hE = this.hide_element(), | |
b = | |
cS && !cS.async && hE | |
? hE + "{" + this.hide_element_style() + "}" | |
: "", | |
h = d.getElementsByTagName("head")[0]; | |
a.setAttribute("id", "_vis_opt_path_hides"); | |
v && a.setAttribute("nonce", v.nonce); | |
a.setAttribute("type", "text/css"); | |
if (a.styleSheet) a.styleSheet.cssText = b; | |
else a.appendChild(d.createTextNode(b)); | |
h.appendChild(a); | |
} | |
if (filterConfig && filterConfig.filterTime === "early") { | |
this.removeLoaderAndOverlay(); | |
} | |
this.load( | |
"https://dev.visualwebsiteoptimizer.com/j.php?a=" + | |
account_id + | |
"&u=" + | |
encodeURIComponent(d.URL) + | |
"&vn=" + | |
version | |
); | |
}, | |
setFilterConfigAndApplyFilter: function (config) { | |
if (!config) { | |
// No config will lead to early return and no addition of smart code | |
return; | |
} | |
var state = this.isNonLiveMode(account_id) || config.isConsentGiven(); | |
if (state === "1") { | |
// if cookie consent was already given and the cookies were already accepted, execute out normal flow | |
hide_element = "body"; | |
w._vwo_settings_timer = _vwo_code.init(); | |
return; | |
} else if (state === "2") { | |
return; | |
} | |
if (!config.filterTolerance) { | |
// Execute removal logic immediately when filterTolerance is 0 or empty | |
return; | |
} | |
function clearIntervals(timerIds) { | |
for (var i = 0; i < timerIds.length; i++) { | |
clearInterval(timerIds[i]); | |
} | |
} | |
this.filterConfig = config; | |
var popupTimer = setInterval(function () { | |
if (_vwo_code.applyFilters(config)) { | |
clearInterval(popupTimer); | |
} | |
}, 100); | |
var timer = setInterval(function () { | |
var state = config.isConsentGiven(); | |
var shouldClearAllIntervals; | |
if (state === "1") { | |
_vwo_code.showLoader(); | |
w._vwo_settings_timer = _vwo_code.init(); | |
shouldClearAllIntervals = true; | |
} else if (state === "2") { | |
_vwo_code.filterConfig = undefined; | |
_vwo_code.removeLoaderAndOverlay(); | |
shouldClearAllIntervals = true; | |
} | |
if (shouldClearAllIntervals) { | |
clearIntervals([timer, popupTimer]); | |
clearInterval(filterToleranceTimer); | |
} | |
}, 100); | |
var filterToleranceTimer; | |
// RECOMMENDED: When using Best Approach | |
filterToleranceTimer = setTimeout(function () { | |
_vwo_code.removeLoaderAndOverlay(); | |
clearIntervals([timer, popupTimer]); | |
}, config.filterTolerance); | |
}, | |
showLoader: function () { | |
var vwoOverlay = d.getElementsByClassName("vwo-overlay")[0]; | |
if (!vwoOverlay) return; | |
var vwoContentLoader = d.createElement("div"); | |
vwoContentLoader.classList.add("vwo-content-loader"); | |
vwoOverlay.parentNode.insertBefore( | |
vwoContentLoader, | |
vwoOverlay.nextSibling | |
); | |
}, | |
applyFilters: function (config) { | |
var popup = d.querySelector(config.popupSelector); | |
var popupZIndex; | |
if (!popup && d.getElementById("_vis_opt_overlay")) { | |
return; | |
} | |
var maxZIndex = 2147483647; | |
if (popup) { | |
var popupStyle = w.getComputedStyle(popup); | |
popupZIndex = popupStyle.getPropertyValue("z-index"); | |
if (!popupZIndex || popupZIndex === "auto") { | |
popupZIndex = maxZIndex; | |
} | |
popup.style.zIndex = popupZIndex; | |
} | |
popupZIndex = popupZIndex || maxZIndex; | |
// You can change the styling to suit your requirements | |
// This is the default CSS filters VWO provides | |
// NOTE: do not change any class names IMPORTANT ... | |
var vwoFilter = | |
"position: fixed; top: 0; left: 0; right: 0; bottom: 0; height: 100%; width: 100%; -webkit-filter: blur(5px); filter: blur(5px); backdrop-filter: saturate(180%) blur(3px); -webkit-backdrop-filter: saturate(180%) blur(3px); z-index:" + | |
(popupZIndex - 1) + | |
";", | |
vwoLoaderCss = | |
" .vwo-content-loader{ border: 16px solid #f3f3f3; border-top: 16px solid #3498db; border-radius: 50%; width: 90px; height: 90px; position: fixed; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); animation: vwo-spin 2s linear infinite; z-index:" + | |
(popupZIndex - 1) + | |
"; }" + | |
"@keyframes vwo-spin { 0% { -webkit-transform: translate(-50%, -50%) rotate(0deg); transform: translate(-50%, -50%) rotate(0deg); } 100% { -webkit-transform: translate(-50%, -50%) rotate(360deg); transform: translate(-50%, -50%) rotate(360deg); } }"; | |
/** | |
* This below written code should not be tweaked | |
* */ | |
var overlayStyleTag = d.getElementById("_vis_opt_overlay"), | |
overlayCSS = ".vwo-overlay{" + vwoFilter + "}" + vwoLoaderCss; | |
if (overlayStyleTag) { | |
if (overlayStyleTag.styleSheet) { | |
overlayStyleTag.styleSheet.cssText = overlayCSS; | |
} else { | |
var _vwo_textNode = d.createTextNode(overlayCSS); | |
overlayStyleTag.appendChild(_vwo_textNode); | |
overlayStyleTag.removeChild(overlayStyleTag.childNodes[0]); | |
} | |
} else { | |
var a = d.createElement("style"), | |
h = d.getElementsByTagName("head")[0], | |
body = d.getElementsByTagName("body")[0]; | |
var vwoOverlay = d.createElement("div"); | |
vwoOverlay.classList.add("vwo-overlay"); | |
body.prepend(vwoOverlay); | |
// CAUTION Do not remove this id from your style tag. It is required by VWO | |
a.setAttribute("id", "_vis_opt_overlay"); | |
a.setAttribute("type", "text/css"); | |
if (a.styleSheet) a.styleSheet.cssText = overlayCSS; | |
else a.appendChild(d.createTextNode(overlayCSS)); | |
h.appendChild(a); | |
} | |
return !!popup; | |
}, | |
removeLoaderAndOverlay: function () { | |
var overlay = d.getElementsByClassName("vwo-overlay"); | |
var loader = d.getElementsByClassName("vwo-content-loader"); | |
var overlayStyleTag = d.getElementById("_vis_opt_overlay"); | |
overlay && | |
(overlay = overlay[0]) && | |
overlay.parentElement.removeChild(overlay); | |
loader && | |
(loader = loader[0]) && | |
loader.parentElement.removeChild(loader); | |
overlayStyleTag && | |
overlayStyleTag.parentElement.removeChild(overlayStyleTag); | |
}, | |
isNonLiveMode: function (accountId) { | |
var wName = w.name; | |
if (!wName) { | |
return; | |
} | |
return ( | |
(wName.indexOf("_vis_editor") > -1 || | |
wName.indexOf("_vis_preview_" + accountId) > -1 || | |
wName.indexOf("_vis_heatmap_" + accountId) > -1) && | |
"1" | |
); | |
}, | |
}; | |
w._vwo_code = code; | |
})(); | |
_vwo_code.setFilterConfigAndApplyFilter({ | |
popupSelector: "SELECTOR_PATH_OF_POPUP", | |
filterTime: "FILTER_TIME_AS_PER_YOUR_PREFERENCE", | |
isConsentGiven: function () { | |
/** your custom Code */ | |
}, | |
filterTolerance: "HARD_TIMER_FOR_REMOVING_OVERLAY_AND_POPUP", | |
}); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment