javascript - 谷歌标签管理器。如何防止以编程方式加载自定义标签?

标签 javascript google-tag-manager

我正在开发使用 GTM(Google 跟踪代码管理器)的网站。 GTM 包含一些来 self 国不允许的网站的脚本(标签)。它会在控制台中导致错误,我想停止加载此标签。我无权访问 GTM 帐户,所以我应该使用 js 来访问。该脚本是自定义 HTML 标记,因为当我尝试下面的代码时,它会停止加载:

    dataLayer = [{
        'gtm.blacklist':['html']
    }];

但它也会停止加载其他自定义标签。 如何停止以编程方式加载某些自定义标签?

最佳答案

我认为这是可以做到的。查看 GTM 代码,我们可以看到它使用 insertBefore 函数将脚本元素添加到网站(目前,他们可以随时更改此设置)。因此,理论上您可以向 native 函数“添加”一些代码并防止从特定源加载脚本。例如,您可以在加载 GTM 之前运行以下代码:

Node.prototype.insertBefore = (function() {
    var cached_function = Node.prototype.insertBefore;

    return function(script) {
        if(script && script.src.indexOf("www.somesource.com/script.js") !== -1){ //change to src you don't want to load on your page
            return false; //don't add the script
        }else{
            var result = cached_function.apply(this, arguments); // use .apply() to call native function

            return result;
        }
    };
})();

(代码取自:Adding code to a javascript function programmatically)

我没有测试此代码,所以我不建议您在没有适当测试的情况下执行此操作,否则您可能决定根本不执行此操作(在执行此操作之前,您可能需要阅读: Why is extending native objects a bad practice? )。我同意 Eike 的回答,但我想说的是,可以防止以编程方式加载自定义标签。

关于javascript - 谷歌标签管理器。如何防止以编程方式加载自定义标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45918901/

相关文章:

amazon-web-services - 谷歌标签管理器点击流到亚马逊

javascript - Woocommerce 感谢页面中的 Linkwise Affiliate 集成

JavaScript 不保存样式属性

javascript - jquery 更改标签文本,bootstrap

javascript - 通过组 CouchDB View 获取最新项目

google-analytics - 仅针对特定网址的出站链接跟踪

ios - 'Pods-App'目标具有传递依赖项,包括在快速框架中使用GTM时包括静态二进制文件的传递依赖项

javascript - 如何更改管理面板左侧菜单上 strapi 的 Logo ?

javascript - 如何在不重新绑定(bind) this 的情况下返回带有粗箭头函数的对象?

if 语句的 JavaScript 循环