因此,我的网站使用shadowbox来显示一些动态文字。问题是我需要用户能够复制和粘贴该文本。
右键单击并选择复制有效,但 Ctrl + C 不能(没有键盘快捷键),大多数人使用 Ctrl + C ?你可以看到我正在谈论的here的例子。
只需转到“网络”示例,然后点击“内联”即可。注意键盘快捷键适用于“此页面”示例。我看到的两个唯一的区别是他们使用的播放器js文件。 “Inline”使用html.js播放器,“this page”使用iframe.js。另外,我相信它使用了mootools库。有什么想法吗?
答案 0 :(得分:2)
最佳选择是通过将“enableKeys”选项设置为false来禁用影子框中的键盘导航快捷方式(请参阅this page)。
或者您可以执行Robby建议并修改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事件处理程序吞下它不关心的任何击键。
答案 1 :(得分:1)
此问题是由一些吃掉键盘事件的JavaScript引起的。例如,您可以点击其中一个.js文件捕获的转义键,并使阴影框关闭。
您的选择是破解文件并找到问题,或者不使用shadowbox。祝你好运!
答案 2 :(得分:0)
解决方案是将enableKeys选项设置为false。但是,这似乎不适用于内联HTML的open()调用。但是,如果你在init()调用中设置它,它确实有用。