Reputation: 3872
I have the following code
var elements = parent.document.getElementsByTagName('a');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function () {
return confirm_exit('".$_SESSION['SES_abr_langue']."');
}
}
And I need for the onclick to be appended to the existing onclick event, if it exists.
When I add elements[i].onclick
inside the function() it just "hardcodes" it. Meaning it literally puts elements[i].onclick instead of the value of the onclick.
Thanks!
Upvotes: 0
Views: 80
Reputation: 15053
Try using addEventListener:
function onLinkClick() {
return confirm_exit('".$_SESSION['SES_abr_langue']."');
}
var elements = parent.document.getElementsByTagName('a');
for(var i = 0, len = elements.length; i < len; i++) {
if (elements[i].addEventListener) {
elements[i].addEventListener("click", onLinkClick, false);
} else if (elements[i].attachEvent) {// for < IE9
elements[i].attachEvent("onclick", onLinkClick);
}
}
Edit
Use the following if you want to have control over the original onclick:
function createLinkEvent(orgOnClick) {
return function(e) {
if (!confirm_exit('".$_SESSION['SES_abr_langue']."')) {
return false;
}
if (orgOnClick) {
return orgOnClick(e);
}
return true;
};
}
}
var elements = parent.document.getElementsByTagName('a');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = createLinkEvent(elements[i].onclick);
}
Upvotes: 4