|
87 | 87 | if (window[saGlobal] && window[saGlobal + "_loaded"]) { |
88 | 88 | var hostname = element.hostname; |
89 | 89 | var pathname = element.pathname; |
| 90 | + |
| 91 | + var event; |
| 92 | + var metadata = { |
| 93 | + title: element.getAttribute("title") || undefined, |
| 94 | + }; |
| 95 | + var url = element.href || undefined; |
| 96 | + |
90 | 97 | var useTitle = false; |
91 | 98 | if (optionsLink.title && element.hasAttribute("title")) { |
92 | 99 | var theTitle = element.getAttribute("title").trim(); |
93 | 100 | if (theTitle != "") useTitle = true; |
94 | 101 | } |
95 | 102 |
|
96 | | - var event; |
97 | | - |
98 | 103 | if (useTitle) { |
99 | 104 | event = theTitle; |
100 | 105 | } else { |
101 | 106 | switch (type) { |
102 | 107 | case "outbound": { |
103 | 108 | event = hostname + (optionsLink.outboundFullUrl ? pathname : ""); |
| 109 | + metadata.url = url; |
104 | 110 | break; |
105 | 111 | } |
106 | 112 | case "download": { |
107 | 113 | event = optionsLink.downloadsFullUrl |
108 | 114 | ? hostname + pathname |
109 | 115 | : pathname.split("/").pop(); |
| 116 | + metadata.url = url; |
110 | 117 | break; |
111 | 118 | } |
112 | 119 | case "email": { |
113 | 120 | var href = element.getAttribute("href"); |
114 | 121 | event = (href.split(":")[1] || "").split("?")[0]; |
| 122 | + metadata.email = event; |
115 | 123 | break; |
116 | 124 | } |
117 | 125 | } |
|
122 | 130 | "_" + |
123 | 131 | event.replace(/[^a-z0-9]+/gi, "_").replace(/(^_+|_+$)/g, ""); |
124 | 132 |
|
125 | | - window[saGlobal](clean, callback); |
| 133 | + window[saGlobal](clean, metadata, callback); |
126 | 134 |
|
127 | 135 | log("collected " + clean); |
128 | 136 |
|
129 | | - return window.setTimeout(callback, 5000); |
| 137 | + return type === "email" |
| 138 | + ? callback() |
| 139 | + : window.setTimeout(callback, 5000); |
130 | 140 | } else { |
131 | 141 | log(saGlobal + " is not defined", "warn"); |
132 | 142 | return callback(); |
|
176 | 186 |
|
177 | 187 | link.setAttribute("onclick", onClickAttribute); |
178 | 188 | } else { |
179 | | - link.addEventListener("click", function () { |
180 | | - saAutomatedLink(collect); |
| 189 | + link.addEventListener("click", function (element) { |
| 190 | + saAutomatedLink(element.target, collect); |
181 | 191 | }); |
182 | 192 | } |
183 | 193 | } |
|
189 | 199 | // Loop over all links on the page |
190 | 200 | for (var i = 0; i < a.length; i++) { |
191 | 201 | var link = a[i]; |
| 202 | + var href = link.getAttribute("href"); |
192 | 203 |
|
193 | 204 | // Skip links that don't have an href |
194 | | - if (!link.getAttribute("href")) continue; |
| 205 | + if (!href) continue; |
195 | 206 |
|
196 | 207 | // We don't want to overwrite website behaviour so we check for the onclick attribute |
197 | 208 | if (!link.getAttribute("onclick") && !/^mailto:/.test(href)) { |
|
0 commit comments