在函数内部添加变量

Add variable inside of a function

本文关键字:变量 添加 内部 函数      更新时间:2023-09-26

我有以下代码

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']."');
  }
}

我需要onclick被附加到现有的onclick事件,如果它存在。

当我在函数()中添加elements[i].onclick时,它只是"硬编码"它。意思是它把元素[i]放进去。,而不是Onclick的值。

谢谢!

尝试使用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);
  }
}

编辑

如果你想控制原来的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);
}