Наилучшим вариантом является отключение сочетаний клавиш в теневой коробке, установив для параметра «enableKeys» значение false (см. эта страница ).
В качестве альтернативы вы можете сделать то, что предлагает Робби, и изменить файл shadowbox.js, , но делать это только в том случае, если вам нужна навигация с клавиатурой shadowbox . Я думаю, что вы хотите найти этот блок кода и изменить его так, чтобы он отменял событие по умолчанию только при использовании одного из ярлыков (я добавил несколько разрывов строк и отступа):
var handleKey=function(e){
var code=SL.keyCode(e);
SL.preventDefault(e);
if(code==81||code==88||code==27){
SB.close()
}else{
if(code==37){
SB.previous()
}else{
if(code==39){
SB.next()
}else{
if(code==32){
SB[(typeof slide_timer=="number"?"pause":"play")]()
}
}
}
}
};
Я думаю, вы можете изменить его так, чтобы он выглядел так:
var handleKey=function(e){
switch(SL.keyCode(e)) {
case 81:
case 88:
case 27:
SB.close()
SL.preventDefault(e);
break;
case 37:
SB.previous()
SL.preventDefault(e);
break;
case 39:
SB.next()
SL.preventDefault(e);
break;
case 32:
SB[(typeof slide_timer=="number"?"pause":"play")]()
SL.preventDefault(e);
break;
}
};
Это должно препятствовать тому, чтобы обработчик событий shadowbox глотал любые нажатия клавиш, о которых он не заботится.