[WebProfilerBundle] Fixes event listener attaching error in IE

This commit is contained in:
Alexander Obuhovich 2015-02-10 11:59:31 +02:00
parent 8b10043dad
commit 21693e4571
2 changed files with 38 additions and 19 deletions

View File

@ -281,14 +281,7 @@
}
// attach listener for expanding/collapsing the target
buttons[i].addEventListener('click', function (e) {
toggle(this);
e.preventDefault();
e.stopPropagation();
return false;
});
clickHandler(buttons[i], toggle);
if (states.hasOwnProperty(targetId)) {
// open or collapse based on stored data
@ -380,14 +373,7 @@
throw "Tab target " + targetId + " does not exist";
}
tabs[i].addEventListener('click', function (e) {
select(this);
e.preventDefault();
e.stopPropagation();
return false;
});
clickHandler(buttons[i], select);
Sfjs.addClass(target, 'hidden');
}
@ -405,7 +391,26 @@
}
var tabTarget = new TabView(),
toggler = new Toggler(new JsonStorage(sessionStorage));
toggler = new Toggler(new JsonStorage(sessionStorage)),
clickHandler = function (element, callback) {
Sfjs.addEventListener(element, 'click', function (e) {
if (!e) {
e = window.event;
}
callback(e.target || e.srcElement);
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
e.stopPropagation();
return false;
});
};
tabTarget.initTabs(document.querySelectorAll('.tree .tree-inner'));
toggler.initButtons(document.querySelectorAll('a.toggle-button'));

View File

@ -171,6 +171,18 @@
requestCounter[0].className = className;
};
var addEventListener;
if (document.addEventListener) {
addEventListener = function (element, eventName, callback) {
element.attachEvent('on' + eventName, callback);
};
} else {
addEventListener = function (element, eventName, callback) {
element.addEventListener(eventName, callback, false);
};
}
{% if excluded_ajax_paths is defined %}
var proxied = XMLHttpRequest.prototype.open;
@ -189,7 +201,7 @@
requestStack.push(stackElement);
this.addEventListener("readystatechange", function() {
addEventListener(this, 'readystatechange', function() {
if (self.readyState == 4) {
stackElement.duration = new Date() - stackElement.start;
stackElement.loading = false;
@ -199,7 +211,7 @@
Sfjs.renderAjaxRequests();
}
}, false);
});
Sfjs.renderAjaxRequests();
}
@ -219,6 +231,8 @@
setPreference: setPreference,
addEventListener: addEventListener,
request: request,
renderAjaxRequests: renderAjaxRequests,