关于函数重写,请路过的老婆帮忙看一下。谢谢了
JScript code
<input type="text" id="a"/>
<script language="javascript">
//请问如果在这里重写系统的focus()函数,让下面的代码失效?
document.getElementById("a").focus();
</script>
------解决方案--------------------矮油 我可不做你老婆 =.=
告诉你个方法
HTMLDOM有一个基础的document对象
你可以在它的原型里面重写focus函数
Document.prototype.focus = function(){
this.blur();
}
但是不知道IE支持不支持
我觉得思路是对的 就是你需要看看document对象有没有这个方法
console.dir(document) 看看 我懒啊 就不瞧了。。。
------解决方案--------------------好像不管是Document还是HTMLElement。在原型里进行重写。貌似都有问题
PS:Lz这需求实在是有点BT了
------解决方案--------------------var EventUtil = {
addHandler: function(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on", + type, handler);
} else {
element["on" + type] = handler;
}
},
getEvent: function(event) {
return event ? window.event;
},
getTarget: function(event) {
return event.target || event.srcElement;
},
preventDefault: function(event) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
},
removeHandler: function(element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false);
} else if (element.detachEvent) {
element.detachEvent("on", + type, handler);
} else {
element["on" + type] = null;
}
}
};
EventUtil.addHandler(document.getElementById("a"), "focus", function(event){
event = EventUtil.getEvent(event);
EventUtil.preventDefault(event);
});
------解决方案--------------------1.楼主的标题吓到我了;
2.楼主的需求貌似有点多此一举;
3.你别写focus不就行了……