Javascript onbeforedeactivate事件
仅限Internet ExplorerJavascript onbeforedeactivate事件,javascript,html,internet-explorer,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("b
<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') };
}
window.onload=函数(){
var el=document.getElementById(“文本”);
var but=document.getElementById(“but”);
el.onbeforedeactivate=函数(){alert('out')};
but.onclick=function(){alert('click')};
}
当我点击textarea内的按钮(焦点在textarea上)时,我希望这两个函数都会触发,但不会发生
为什么??
警报
会引起各种各样的麻烦,特别是在IE上,但坦率地说,在其他浏览器上也是如此。我会避免的
如果您不使用警报
,而是使用另一种方式显示已接收到的事件,则示例效果良好:
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);
}
}
在IE6、7和8上测试。使用您的原始版本,我得到与您相同的结果(只是“退出”警报)。更新后,我发现这两个事件实际上都发生了。
alert
会引起各种各样的麻烦,特别是在IE上,但坦率地说,在其他浏览器上也是如此。我会避免的
如果您不使用警报
,而是使用另一种方式显示已接收到的事件,则示例效果良好:
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);
}
}
在IE6、7和8上测试。使用您的原始版本,我得到与您相同的结果(只是“退出”警报)。通过更新,我发现这两个事件实际上都发生了。如果单击按钮,您会收到两个警报?我也有Ie8,只得到“Out”真的,我也只得到Out在这种情况下,如果你点击按钮,你会得到2个警报?我也有Ie8,只有'Out'是的,我也只有'Out'在那种情况下,对不起