より低い (DOM 0) イベントリスナーがデフォルトのブラウザーアクションを妨げていることを検出する方法はありますか?
IE8以下では「return false」が「event.returnValue」に反映されないようです。以下は、他のすべてのブラウザで機能します。
...
<script>
function addListener(obj, type, listener) {
var w3c = 'addEventListener', ie = 'attachEvent';
if (obj[w3c]) obj[w3c](type, listener);
else if (obj[ie]) obj[ie]('on' + type, listener);
};
addListener(document, 'click', function(event) {
event = event || window.event;
if (event.defaultPrevented || event.returnValue === false ||
event.getPreventDefault && event.getPreventDefault()) {
return;
}
alert('Default action not prevented!');
});
</script>
...
<!-- THIS PART CANNOT BE CHANGED. -->
<a href="//foo.com" onclick="return confirm('Really leave page?');">click me</a>