Как загрузить внешний скрипт при нажатии (после загрузки страницы) в режиме автоматической блокировки Cookiebot
Я использую Cookiebot в режиме автоматической блокировки.
В одном конкретном случае (встроенная шкала времени в твиттере) мне нужно делать что-то "вручную". Я хотел бы сделать следующее, независимо от выбора пользователя в баннере Cookiebot:
- показать кнопку "разрешить твиттер" в div-заполнителе
- при нажатии загрузите скрипт twitter и инициализируйте виджет временной шкалы
Если я принимаю маркетинговые и предпочтительные файлы cookie в баннере CB, следующее работает нормально, но если нет, вызов getScript блокируется.
<div class="twitter-wrap">twitter anchor element</div>
<script data-cookieconsent="ignore">
// append a button to allow user to accept cookies
$(".twitter-wrap").append('<div class="twitter-consent"><button class="twitter-consent-btn">Accept</button></div>');
$(".twitter-consent-btn").on("click", function(){
$(".twitter-consent").hide();
$.getScript( "https://platform.twitter.com/widgets.js", function( data, textStatus, jqxhr ) {
console.log( jqxhr.status ); // This is never executed
twttr.widgets.load().then(function () {
console.log('Embedded timeline.')
});
});
});
</script>
Я также попытался заменить вызов getScript тем, что предлагается в twitter, где я также добавил флаг игнорирования в динамически сгенерированный скрипт), но безуспешно:
function append_twttrScript() {
window.twttr = (function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
t = window.twttr || {};
if (d.getElementById(id)) return t;
js = d.createElement(s);
js.setAttribute("data-cookieconsent", "ignore"); // Here I add an extra attribute
js.id = id;
js.src = "https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
t._e = [];
t.ready = function(f) {
t._e.push(f);
twttr.widgets.load().then(function (el) {
console.log('Embedded a timeline.')
});
};
return t;
}(document, "script", "twitter-wjs"));
}
Насколько я понимаю, принцип работы data-cookieconsent="ignore" заключается в том, что он сначала выполняет скрипты с этим флагом один раз, а затем все блокирует?!
Возможно ли то, что мне нужно сделать, или мне нужно прибегнуть к ручной настройке cookiebot?