我这边问题刚刚解决,原因是火狐浏览器的兼容问题,event.preventDefault();这句js代码无法顺利执行,通过重新封装event对象,可以在火狐浏览器顺利打开右键菜单(而不弹出浏览器自带右键菜单)。重新封装event的代码我也一并放在下边啦。最后感谢版主的耐心解答,很给力!
//firefox----这段js重新封装了event对象,经验证可以在火狐下支持
function __firefox(){
HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);
window.constructor.prototype.__defineGetter__("event", __window_event);
Event.prototype.__defineGetter__("srcElement", __event_srcElement);
}
function __element_style(){
return this.style;
}
function __window_event(){
return __window_event_constructor();
}
function __event_srcElement(){
return this.target;
}
function __window_event_constructor(){
if(document.all){
return window.event;
}
var _caller = __window_event_constructor.caller;
while(_caller!=null){
var _argument = _caller.arguments[0];
if(_argument){
var _temp = _argument.constructor;
if(_temp.toString().indexOf("Event")!=-1){
return _argument;
}
}
_caller = _caller.caller;
}
return null;
}
if(window.addEventListener){
__firefox();
}
来源:https://zhidao.baidu.com/question/513471979.html |