日期:2014-05-16  浏览次数:20321 次

关于函数重写,请路过的老婆帮忙看一下。谢谢了
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不就行了……