我正在尝试修改页面上的所有链接,以便在单击它们时执行一些额外的工作。
一个简单的方法可能是这样的:
function adaptLinks()
{
var links = document.getElementsByTagName('a');
for(i = 0; i != links.length; i++)
{
links[i].onclick = function (e)
{
<do some work>
return true;
}
}
}
但是一些链接已经有一个应该保留的onClick处理程序。我尝试了以下方法:
function adaptLinks()
{
var links = document.getElementsByTagName('a');
for(i = 0; i != links.length; i++)
{
var oldOnClick = links[i].onclick;
links[i].onclick = function (e)
{
if(oldOnClick != null && !oldOnClick())
{
return false;
}
<do some work>
return true;
}
}
}
但这不起作用,因为oldOnClick仅在调用处理程序时评估(它包含最后一个链接的值作为这一点)。