在函数内添加变量

时间:2013-04-23 16:58:17

标签: javascript

我有以下代码

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而不是onclick的值。

谢谢!

1 个答案:

答案 0 :(得分:4)

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