使用shadowbox禁用键盘快捷键?
问题描述:
所以我的网站使用shadowbox来显示一些动态文本。问题是我需要用户能够复制和粘贴该文本。使用shadowbox禁用键盘快捷键?
右键单击并选择复制作品,但按Ctrl +ç不(无键盘快捷键),大多数人使用按Ctrl +Ç?你可以看到我在说什么here的例子。
只需转到“web”示例并单击“inline”。注意键盘快捷键可以在“本页面”示例上工作。我看到的两个唯一的区别是他们使用的播放器js文件。 “内联”使用html.js播放器,“本页”使用iframe.js。另外,我相信它使用了mootools库。有任何想法吗?
答
最佳选择是通过将“enableKeys”选项设置为false来禁用shadowbox中的键盘导航快捷方式(请参阅this page)。
另外,你可以做什么罗比建议和修改shadowbox.js文件,但只有这样做,如果你需要有阴影盒键盘导航。我认为你要搜索的代码块,并修改它,使它只取消,如果其中一个快捷方式,使用默认的事件(我已经添加了一些换行和缩进):
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;
}
};
这可以防止太极拳事件处理吞咽,它不关心任何按键动作。
答
这个问题是由一些吃键盘事件的JavaScript引起的。例如,您可以点击退出键,该键是由.js文件中的一个捕获的,并导致影子框关闭。
你的选择是破解文件并找出问题,或不使用shadowbox。祝你好运!
答
解决方法是将enableKeys选项设置为false。但是,这似乎不适用于内联HTML的open()调用。但是,如果您在init()调用中设置它,它确实有效。