Javascript onbeforedeactivate事件

时间:2010-12-23 12:15:15

标签: javascript html internet-explorer

仅限Internet Explorer。

<input type="button" id="but" value="button2"/>
<textarea id="text" cols="40" rows="20"></textarea>

window.onload = function() {
  var el = document.getElementById("text");
  var but = document.getElementById("but");

  el.onbeforedeactivate = function() { alert('out') };
  but.onclick = function() { alert('click') };
}

当我单击textarea中的按钮(焦点位于textarea上)时,我希望这两个函数都能触发但不会发生。

为什么呢? Online Example

1 个答案:

答案 0 :(得分:3)

alert会造成各种麻烦,尤其是在IE上但坦率地说在其他浏览器上也是如此。我会避免它。

如果您不使用alert,您的示例可以正常工作,而是使用另一种方式显示已收到的事件:

window.onload = function() {
  var el = document.getElementById("text");
  var but = document.getElementById("but");

  el.onbeforedeactivate = function() { display('out') };
  but.onclick = function() { display('click') };

  function display(msg) {
    var p = document.createElement('p');
    p.innerHTML = msg;
    document.body.appendChild(p);
  }
}

Updated fiddle

在IE6,7和8上测试过。使用原始版本,我得到与您相同的结果(只是“out”警报)。通过更新,我发现事件确实发生了。