PageSourceSearch

https://www.linkconnector.com/wordpress/wp-content/plugins/wp-goog…/js/ga-scroll-events.js?ver=2.4.1

js linkconnector.com collected 2026-09-24 08:53:19 UTC 3,407 bytes, 96 lines download raw bytes

1/*!
2 * WP Googel Analytics Events | v2.4.1
3 * Copyright (c) 2013 Yuval Oren (@yuvalo)
4 * License: GPLv2
5 */
6
7/*jslint indent: 4 */
8/*global $, jQuery, document, window, _gaq*/
9
10var scroll_events = (function ($) {
11    "use strict";
12
13    var scroll_elements  = [];
14    var click_elements = [];
15    var universal = 0;
16        var ga_element;
17
18    var track_event = function (category, action, label, universal, bounce ){
19        var event_category = !category ? '' : category;
20        var event_action = !action ? '' : action;
21        var event_label = !label ? '' : label;
22        var event_bounce = !bounce ? false : bounce;
23
24        if( typeof ga_element === "undefined" ){
25           if( typeof ga !== 'undefined' ){
26               ga_element = ga;
27            } 
28            else if( typeof _gaq !== 'undefined' ){
29                ga_element = _gaq;
30            } 
31            else if( typeof __gaTracker === "function" ){
32                ga_element = __gaTracker;
33            }
34        }
35               
36       if( universal ){
37            // ga_element('send','event', category, action, label);
38            ga_element('send','event', category, action, label, {'nonInteraction': event_bounce});
39
40        }
41        else {
42            // ga_element.push(['_trackEvent',category, action, label]);
43            ga_element.push( ['_trackEvent',category, action, label, '', event_bounce] );
44        }
45
46    };
47
48    var click_event = function( event ){
49      
50        track_event(event.data.category, event.data.action, event.data.label, event.data.universal, event.data.bounce);
51        var hasHref = event.currentTarget.href;
52        if (hasHref && hasHref !== "") {
53            event.preventDefault();
54            if (event.currentTarget.target.trim() === "_blank") {
55                var w = window.open('', '_blank');
56                w.location.href = event.currentTarget.href;
57            } else {
58                setTimeout(function () {
59                    window.location = event.currentTarget.href;
60                }, 100);
61            }
62        }
63    };
64
65    return {
66        bind_events : function (settings) {
67            scroll_elements = settings.scroll_elements;
68            click_elements = settings.click_elements;
69            universal = settings.universal;
70            var i;
71            for (i = 0; i < click_elements.length; i++) {
72                var clicked = click_elements[i];
73                clicked.universal = universal;
74                $(clicked.select).on('click', clicked, click_event);
75            }
76
77
78
79            $(window).scroll(function () {
80                var ga_window = $(window).height();
81                var ga_scroll_top = $(document).scrollTop();
82                var i;
83                for (i = 0; i < scroll_elements.length; i++) {
84                    if (!scroll_elements[i].sent) {
85                        scroll_elements[i].offset =  $(scroll_elements[i].select).offset();
86                        if (scroll_elements[i].offset && ga_scroll_top + ga_window >= scroll_elements[i].offset.top + $(scroll_elements[i].select).height()) {
87                            track_event(scroll_elements[i].category, scroll_elements[i].action, scroll_elements[i].label, universal, scroll_elements[i].bounce);
88                            scroll_elements[i].sent = true;
89                        }
90                    }
91                }
92            });
93        }
94    };
95
96}(jQuery));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.