javascript - Codemirror editor fullscreen - 如何向代码镜像添加自定义函数

标签 javascript codemirror

有一个不错的example of how to make a fullscreen version of the CodeMirror editor .但是,如果 CodeMirror 小部件位于其他一些 position: absoluterelative div 的中间(CodeMirror 小部件的绝对定位不会相对于整个页面)。

我们可以向 CodeMirror 添加一个新命令来全屏显示:

CodeMirror.commands.fullscreen = function (cm)
{
var fs_p = $(cm.getWrapperElement());

if ( cm._ic3Fullscreen == null) {
    cm._ic3Fullscreen = false;
    cm._ic3container = fs_p.parent();
}

if (!cm._ic3Fullscreen)
{
    fs_p = fs_p.detach();
    fs_p.addClass("CodeMirrorFullscreen");
    fs_p.appendTo("body");
    cm.focus();
    cm._ic3Fullscreen = true;
}
else
{
    fs_p = fs_p.detach();
    fs_p.removeClass("CodeMirrorFullscreen");
    fs_p.appendTo(cm._ic3container);
    cm.focus();
    cm._ic3Fullscreen = false;
}
};

创建CodeMirror 时需要绑定(bind)这个新命令。将此添加到选项中:

extraKeys: {"F11": "fullscreen"}

问题是要在 CodeMirrorFullscreen CSS 类中放置什么以确保全屏可用?

最佳答案

使用 position: fixed 而不是 absolute 应该可以解决问题。

如需测试,只需修改CodeMirror的fullscreen.html demo的CSS如下:

  form {
    position: relative;
  }
  .CodeMirror-fullscreen {
    display: block;
    position: fixed;
    top: 0; left: 0;
    width: 100%;
    z-index: 9999;
  }

(添加的 form 选择器不是解决方案的一部分。它只是为了确保我们正在测试您关心的情况 – 使用 position: absolute.CodeMirror-fullscreen 中不起作用)。

关于javascript - Codemirror editor fullscreen - 如何向代码镜像添加自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7766059/

相关文章:

autocomplete - CodeMirror:如何向 sql-hint 添加表?

javascript - 如何更改 CodeMirror 编辑器的字体

c# - 如何转发、回复或添加推文至收藏夹?

javascript - 如何使用行索引和 td 索引获取 td 中的元素

php - Javascript/PHP 更新多个项目的 innerHTML

javascript - 在 CodeMirror 中使用换行时使 End 键移动到换行

javascript - 仅一行文本字段的代码镜像?

javascript - 替换函数与 if 语句组合

javascript - Jquery Mobile - $.mobile.changepage 没有进行转换

javascript - 如何能够识别codemirror中的javascript?