Я пытаюсь изменить все ссылки на странице, чтобы они выполняли дополнительную работу при нажатии.
Тривиальный подход может быть примерно таким:
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 оценивается только при вызове обработчика (он содержит значение ссылки last как эта точка).