gpt4 book ai didi

javascript - 使用 shadowbox 禁用键盘快捷键?

转载 作者:行者123 更新时间:2023-11-29 10:55:09 25 4
gpt4 key购买 nike

所以我的网站使用shadowbox做显示一些动态文本。问题是我需要用户能够复制和粘贴该文本。

右键单击并选择复制有效,但 Ctrl+C 无效(没有键盘快捷键有效),大多数人使用 Ctrl+ C?你可以看到我在说什么的例子here .

只需转到“网络”示例并单击“内联”。请注意,键盘快捷键确实适用于“此页面”示例。我看到的两者之间的唯一区别是它们使用的播放器 js 文件。 “内联”使用 html.js 播放器,“此页面”使用 iframe.js。另外,我相信它使用了 mootools 库。有什么想法吗?

最佳答案

最好的选择是通过将“enableKeys”选项设置为 false 来禁用 shadowbox 中的键盘导航快捷键(参见 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 事件处理程序吞下它不关心的任何击键。

关于javascript - 使用 shadowbox 禁用键盘快捷键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com