ページ上のすべてのリンクを変更して、クリックしたときに追加の作業を実行しようとしています。
些細なアプローチは次のようなものかもしれません:
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はハンドラーが呼び出されたときにのみ評価されるため、これは機能しません(この時点で最後のリンクの値が含まれています)。