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

右键单击并选择复制可以,但是 控制键+C 没有(没有键盘快捷键)并且大多数人使用 控制键+C?你可以看我正在谈论的一个例子 这里.

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

有帮助吗?

解决方案

最好的选择是通过将“enableKeys”选项设置为 false 来禁用 Shadowbox 中的键盘导航快捷方式(请参阅 这一页).

或者,您可以按照 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 吃掉键盘事件引起的。例如,您可以按转义键,该键被 .js 文件之一捕获并导致阴影框关闭。

您的选择是破解文件并找到问题,或者不使用 Shadowbox。祝你好运!

解决方案是将enableKeys选项设置为false。然而,这似乎不适用于内联 HTML 的 open() 调用。但是,如果您在 init() 调用中设置它,它确实可以工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top