基于javascript函数的GTM触发器

基于javascript函数的GTM触发器,javascript,google-tag-manager,Javascript,Google Tag Manager,我已经用javascript/jquery制作了一个应用程序。。。一种交互式的课程 我想触发“课程结束” 只有在javascript中启动函数lessonFinished()时才会发生这种情况 我如何在GTM中设置触发器来检测javascript中的特定函数是否已启动。。。或者正确的解决方法是什么?我会使用装饰向函数添加功能。但这只有在使用全局可访问函数时才起作用。您可以创建一个自定义HTML事件并使用类似的内容 $(function(){ if( typeof lessonFinish

我已经用javascript/jquery制作了一个应用程序。。。一种交互式的课程

我想触发“课程结束”

只有在javascript中启动函数lessonFinished()时才会发生这种情况


我如何在GTM中设置触发器来检测javascript中的特定函数是否已启动。。。或者正确的解决方法是什么?

我会使用装饰向函数添加功能。但这只有在使用全局可访问函数时才起作用。您可以创建一个自定义HTML事件并使用类似的内容

$(function(){
    if( typeof lessonFinished !== 'function'){
        // need to delay the execution
        console.error('lesson finished not defined');
    }
    // save the original lesson finished function
    var originalLessonFinishedFunction = lessonFinished;
    // decorate the lesson finished function with tag manager stuff
    lessonFinished = function(){

        // call the original function
        originalLessonFinishedFunction();

        // do the tag manager data layer push
        dataLayer.push({
            event: 'Lesson Finished',
            timing: Date.now(),
            extra: 'stuff'
        });
    }
});