我有一个生成一个HTML的输入(文本框)相当简单的ASP.NET页面。 在生成的HTML,我附上一个处理的几个事件,包括聚焦状态,onkeypress事件,和的onkeyup。 因为这是针对一个版本的IE不支持的addEventListener(情况,对此,我也没有办法)的解决方案,我被迫使用的attachEvent。
到的attachEvent一个典型的呼叫如下-我摘录这个来源从原来的简洁/清晰起见,所以它是不准确的问题的代码:
var hostControl = document.getElementById('mytextbox');
var attachResult = hostControl.attachEvent('onfocus', function(){
hostControl.select();
});
if (!attachResult)
{
alert('Attach failed.');
}
attachResult = hostControl.attachEvent('onblur', function(){
if (hostControl.value=='')
{
alert('Warning - no entry.');
}
});
if (!attachResult)
{
alert('Attach failed.');
}
当我通过这段代码在IE调试步骤,在这两种情况下,这应该表明事件连接尝试是成功返回“真”的attachEvent。 然而,当我看着[事件]的处理程序调试器中的控制,所有的事件显示“空”,没有任何附加的处理程序。
事情我已经试过/研究:
- 我读过关于在IE事件附件变幻莫测的几个不同的文章,所以我speciously避免任何“这个”引用。
- 我想,用试图如果有使用的addEventListener的包装的addEvent块的一个一个版本,尽管我知道这将是一个IE浏览器的解决方案。
当我试图那个版本对火狐,活动连接工作正常通过的addEventListener,但使用的attachEvent(带的attachEvent仍然返回true)未能在IE中。
- 然后我选择以消除包装可能会引入任何可能出现的问题,并直接使用的attachEvent对控制,这使我现在的我。 问题仍然存在。
我想认为我只是忽略了一些很简单的,因为我之前迷上了事件没有困难,但这里的东西是扔我一个弧线球我就是不承认。 欣赏这个额外的眼球,看看我是错误的。