|
173 | 173 |
|
174 | 174 | var addEventListener;
|
175 | 175 |
|
176 |
| - if (document.attachEvent) { |
| 176 | + var el = document.createElement('div'); |
| 177 | + if (!'addEventListener' in el) { |
177 | 178 | addEventListener = function (element, eventName, callback) {
|
178 | 179 | element.attachEvent('on' + eventName, callback);
|
179 | 180 | };
|
|
184 | 185 | }
|
185 | 186 |
|
186 | 187 | {% if excluded_ajax_paths is defined %}
|
187 |
| - var proxied = XMLHttpRequest.prototype.open; |
188 |
| -
|
189 |
| - XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { |
190 |
| - var self = this; |
191 |
| -
|
192 |
| - /* prevent logging AJAX calls to static and inline files, like templates */ |
193 |
| - if (url.substr(0, 1) === '/' && !url.match(new RegExp("{{ excluded_ajax_paths }}"))) { |
194 |
| - var stackElement = { |
195 |
| - loading: true, |
196 |
| - error: false, |
197 |
| - url: url, |
198 |
| - method: method, |
199 |
| - start: new Date() |
200 |
| - }; |
201 |
| -
|
202 |
| - requestStack.push(stackElement); |
203 |
| -
|
204 |
| - addEventListener(this, 'readystatechange', function() { |
205 |
| - if (self.readyState == 4) { |
206 |
| - stackElement.duration = new Date() - stackElement.start; |
207 |
| - stackElement.loading = false; |
208 |
| - stackElement.error = self.status < 200 || self.status >= 400; |
209 |
| - stackElement.profile = self.getResponseHeader("X-Debug-Token"); |
210 |
| - stackElement.profilerUrl = self.getResponseHeader("X-Debug-Token-Link"); |
211 |
| -
|
212 |
| - Sfjs.renderAjaxRequests(); |
213 |
| - } |
214 |
| - }); |
| 188 | + if (window.XMLHttpRequest) { |
| 189 | + var proxied = XMLHttpRequest.prototype.open; |
| 190 | +
|
| 191 | + XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { |
| 192 | + var self = this; |
| 193 | +
|
| 194 | + /* prevent logging AJAX calls to static and inline files, like templates */ |
| 195 | + if (url.substr(0, 1) === '/' && !url.match(new RegExp("{{ excluded_ajax_paths }}"))) { |
| 196 | + var stackElement = { |
| 197 | + loading: true, |
| 198 | + error: false, |
| 199 | + url: url, |
| 200 | + method: method, |
| 201 | + start: new Date() |
| 202 | + }; |
| 203 | +
|
| 204 | + requestStack.push(stackElement); |
| 205 | +
|
| 206 | + this.addEventListener('readystatechange', function() { |
| 207 | + if (self.readyState == 4) { |
| 208 | + stackElement.duration = new Date() - stackElement.start; |
| 209 | + stackElement.loading = false; |
| 210 | + stackElement.error = self.status < 200 || self.status >= 400; |
| 211 | + stackElement.profile = self.getResponseHeader("X-Debug-Token"); |
| 212 | + stackElement.profilerUrl = self.getResponseHeader("X-Debug-Token-Link"); |
| 213 | +
|
| 214 | + Sfjs.renderAjaxRequests(); |
| 215 | + } |
| 216 | + }, false); |
215 | 217 |
|
216 |
| - Sfjs.renderAjaxRequests(); |
217 |
| - } |
| 218 | + Sfjs.renderAjaxRequests(); |
| 219 | + } |
218 | 220 |
|
219 |
| - proxied.apply(this, Array.prototype.slice.call(arguments)); |
220 |
| - }; |
| 221 | + proxied.apply(this, Array.prototype.slice.call(arguments)); |
| 222 | + }; |
| 223 | + } |
221 | 224 | {% endif %}
|
222 | 225 |
|
223 | 226 | return {
|
|
0 commit comments