最近、netsurf のチューニング時に関連するバグに遭遇しました。alert() が 2 回呼び出されました。 html コード:
関数 Causealert()
{
var txt = document.getElementById("p1").textContent;
alert(txt);
}
段落の最初の行。
< /p>
<script><br>var Button1 = document.getElementById("button1");<br>/*var Button1Click = function() {alert(1) }; ", Button1Click, false);*/<br>Button1.onclick = Causealert;<br> </p></script>
evt->phase = DOM_BUBBLING_PHASE;
仕様ではキャプチャーとバブリングのどちらか一方のみを選択できると規定されており、コードではjs_dom_event_add_listener()でキャプチャーを選択しています。これは、アラートが 2 回実行される理由を説明します。
修正: DOM 3 仕様に従って、上記の 0 を 1 に変更するだけです。