Skip to content

Instantly share code, notes, and snippets.

@tobiasdalhof
Last active May 23, 2018 11:47
Show Gist options
  • Save tobiasdalhof/37ccafa3ba99eadca1ccff5801ae73e6 to your computer and use it in GitHub Desktop.
Save tobiasdalhof/37ccafa3ba99eadca1ccff5801ae73e6 to your computer and use it in GitHub Desktop.
GDPR web tracking cookie toggle, using Cookie.js
if (typeof window.Cookies.get('disable-webtracking') === 'undefined') {
// Your tracking code here
// Google Analytics, Facebook, Matomo, you name it...
}
<div>
<p><strong class="webtrackingStatus">Das Webtracking ist aktiviert.</strong> <a class="toggleWebtracking" href="javascript:toggleWebtracking()">Webtracking deaktivieren</a></p>
<p><strong class="webtrackingStatus">Das Webtracking ist aktiviert.</strong> <a class="toggleWebtracking" href="javascript:toggleWebtracking()">Webtracking deaktivieren</a></p>
<p><strong class="webtrackingStatus">Das Webtracking ist aktiviert.</strong> <a class="toggleWebtracking" href="javascript:toggleWebtracking()">Webtracking deaktivieren</a></p>
<p><strong class="webtrackingStatus">Das Webtracking ist aktiviert.</strong> <a class="toggleWebtracking" href="javascript:toggleWebtracking()">Webtracking deaktivieren</a></p>
<p><strong class="webtrackingStatus">Das Webtracking ist aktiviert.</strong> <a class="toggleWebtracking" href="javascript:toggleWebtracking()">Webtracking deaktivieren</a></p>
</div>
<script>
var disableWebtrackingCookie = 'disable-webtracking';
var webtrackingIsAllowed = typeof window.Cookies.get(disableWebtrackingCookie) !== 'undefined';
var toggleWebtrackingLink = document.getElementsByClassName('toggleWebtracking');
var webtrackingStatusText = document.getElementsByClassName('webtrackingStatus');
var webtrackingOptout = function () {
window.Cookies.set(disableWebtrackingCookie, 'true', { expires: 14 });
}
var webtrackingOptin = function () {
window.Cookies.remove(disableWebtrackingCookie);
}
if (webtrackingIsAllowed === true) {
for (var i = 0; i < toggleWebtrackingLink.length; i++) {
toggleWebtrackingLink[i].innerText = 'Webtracking aktivieren';
}
for (var i = 0; i < webtrackingStatusText.length; i++) {
webtrackingStatusText[i].innerText = 'Das Webtracking ist deaktiviert.';
}
}
var toggleWebtracking = function () {
if (webtrackingIsAllowed === true) {
webtrackingOptin();
for (var i = 0; i < toggleWebtrackingLink.length; i++) {
toggleWebtrackingLink[i].innerText = 'Webtracking deaktivieren';
}
for (var i = 0; i < webtrackingStatusText.length; i++) {
webtrackingStatusText[i].innerText = 'Das Webtracking ist aktiviert.';
}
} else {
webtrackingOptout();
for (var i = 0; i < toggleWebtrackingLink.length; i++) {
toggleWebtrackingLink[i].innerText = 'Webtracking aktivieren';
}
for (var i = 0; i < webtrackingStatusText.length; i++) {
webtrackingStatusText[i].innerText = 'Das Webtracking ist deaktiviert.';
}
}
webtrackingIsAllowed = typeof window.Cookies.get(disableWebtrackingCookie) !== 'undefined';
};
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment