Skip to content

Commit 21693e4

Browse files
author
Alexander Obuhovich
committed
[WebProfilerBundle] Fixes event listener attaching error in IE
1 parent 8b10043 commit 21693e4

File tree

2 files changed

+38
-19
lines changed

2 files changed

+38
-19
lines changed

src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/form.html.twig

+22-17
Original file line numberDiff line numberDiff line change
@@ -281,14 +281,7 @@
281281
}
282282
283283
// attach listener for expanding/collapsing the target
284-
buttons[i].addEventListener('click', function (e) {
285-
toggle(this);
286-
287-
e.preventDefault();
288-
e.stopPropagation();
289-
290-
return false;
291-
});
284+
clickHandler(buttons[i], toggle);
292285
293286
if (states.hasOwnProperty(targetId)) {
294287
// open or collapse based on stored data
@@ -380,14 +373,7 @@
380373
throw "Tab target " + targetId + " does not exist";
381374
}
382375
383-
tabs[i].addEventListener('click', function (e) {
384-
select(this);
385-
386-
e.preventDefault();
387-
e.stopPropagation();
388-
389-
return false;
390-
});
376+
clickHandler(buttons[i], select);
391377
392378
Sfjs.addClass(target, 'hidden');
393379
}
@@ -405,7 +391,26 @@
405391
}
406392
407393
var tabTarget = new TabView(),
408-
toggler = new Toggler(new JsonStorage(sessionStorage));
394+
toggler = new Toggler(new JsonStorage(sessionStorage)),
395+
clickHandler = function (element, callback) {
396+
Sfjs.addEventListener(element, 'click', function (e) {
397+
if (!e) {
398+
e = window.event;
399+
}
400+
401+
callback(e.target || e.srcElement);
402+
403+
if (e.preventDefault) {
404+
e.preventDefault();
405+
} else {
406+
e.returnValue = false;
407+
}
408+
409+
e.stopPropagation();
410+
411+
return false;
412+
});
413+
};
409414
410415
tabTarget.initTabs(document.querySelectorAll('.tree .tree-inner'));
411416
toggler.initButtons(document.querySelectorAll('a.toggle-button'));

src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/base_js.html.twig

+16-2
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,18 @@
171171
requestCounter[0].className = className;
172172
};
173173
174+
var addEventListener;
175+
176+
if (document.addEventListener) {
177+
addEventListener = function (element, eventName, callback) {
178+
element.attachEvent('on' + eventName, callback);
179+
};
180+
} else {
181+
addEventListener = function (element, eventName, callback) {
182+
element.addEventListener(eventName, callback, false);
183+
};
184+
}
185+
174186
{% if excluded_ajax_paths is defined %}
175187
var proxied = XMLHttpRequest.prototype.open;
176188
@@ -189,7 +201,7 @@
189201
190202
requestStack.push(stackElement);
191203
192-
this.addEventListener("readystatechange", function() {
204+
addEventListener(this, 'readystatechange', function() {
193205
if (self.readyState == 4) {
194206
stackElement.duration = new Date() - stackElement.start;
195207
stackElement.loading = false;
@@ -199,7 +211,7 @@
199211
200212
Sfjs.renderAjaxRequests();
201213
}
202-
}, false);
214+
});
203215
204216
Sfjs.renderAjaxRequests();
205217
}
@@ -219,6 +231,8 @@
219231
220232
setPreference: setPreference,
221233
234+
addEventListener: addEventListener,
235+
222236
request: request,
223237
224238
renderAjaxRequests: renderAjaxRequests,

0 commit comments

Comments
 (0)