Javascript 当codemirror位于jquery布局内时出现提示和全屏问题
我在里面用 问题:Javascript 当codemirror位于jquery布局内时出现提示和全屏问题,javascript,jquery,html,codemirror,Javascript,Jquery,Html,Codemirror,我在里面用 问题: 在内部布局时,CodeMirror:不起作用。F-11可缩放,esc可退出 我尝试了全屏使用,似乎工作正常,但自动完成提示并没有出现 使用jquery全屏插件,我尝试了给出提示容器(见下面的代码),在全屏下工作良好,在非全屏下不工作。菜单显示从光标位置偏移 我更喜欢使用jquery全屏插件,但由于容器选项,我不知道如何处理提示菜单中的偏移量 完整代码(另存为.html) CodeMirror:任何单词完成演示 居中 北 南方 代码镜像 全屏 #!/bin/bash#克隆存储
CodeMirror:任何单词完成演示
居中
北
南方
代码镜像
全屏
#!/bin/bash#克隆存储库git clonehttp://github.com/garden/tree #生成HTTPS凭据cd树openssl genrsa-aes256-out HTTPS.key 1024 openssl req-new-nodes-key HTTPS.key-out HTTPS.csr openssl x509-req-days 365-in HTTPS.csr-signkey HTTPS.key-out HTTPS.crt cp HTTPS.key{,.orig}openssl rsa-in https.key.orig-out https.key#在https模式下启动服务器cd web sudo node../server.js 443'yes'>../node.log以下是如何在'ps aux | grep'node../server.js'awk'{print$2}'中停止服务器进行pid;do sudo kill-9$pid 2>/dev/null完成退出0
西部
//
//设置代码镜像
函数setupCodeMirror(){
CodeMirror.commands.autocomplete=函数(cm){
显示提示({
提示:CodeMirror.hint.anyword,
容器:$(“#主容器”).get(0)
});
};
//
var editor=CodeMirror.fromTextArea(document.getElementById(“代码”){
模式:“shell”,
主题:'默认',
换行:对,
行号:对,
外键:{
“Ctrl空格”:“自动完成”,
“F11”:功能(厘米){
cm.setOption(“全屏”),!cm.getOption(“全屏”);
},
“Esc”:功能(cm){
if(cm.getOption(“全屏”))cm.setOption(“全屏”),false;
}
}
});
$(“#全屏按钮”)。单击(函数(事件){
$(“#主容器”).toggleFullScreen();
});
}
//初始布局
$('.myDiv')。布局({
重定尺寸同时拉毛:是的,
可调整大小:正确,
东部:{
尺码:800
},
onload_end:函数(){
setupCodeMirror();
}
});
//
根据我的发现,内置cm.setOption(“全屏”)、!cm.getOption(“全屏”)代码>在jquery布局内时不起作用。
但是,对于jquery全屏插件,请参见下面的解决方案
技巧在全屏活动前后设置为不同的showhint容器。
var showHintContainer = document.body;
// setupCodeMirror
function setupCodeMirror() {
CodeMirror.commands.autocomplete = function(cm) {
cm.showHint({
hint: CodeMirror.hint.anyword,
container: showHintContainer
});
};
//
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
mode: 'shell',
theme: 'default',
lineWrapping: true,
lineNumbers: true,
extraKeys: {
"Ctrl-Space": "autocomplete"
}
});
$("#fullscreenButton").click(function(event) {
$("#main-container").toggleFullScreen();
});
$(document).bind("fullscreenchange", function() {
var fullScreenState = $(document).fullScreen() ? 'on' : 'off';
if (fullScreenState === 'on') {
showHintContainer = $("#main-container").get(0);
} else {
showHintContainer = document.body;
}
});
}
// init layout
$('.myDiv').layout({
resizeWhileDragging: true,
resizable: true,
east: {
size: 800
},
onload_end: function() {
setupCodeMirror();
}
});
var showHintContainer = document.body;
// setupCodeMirror
function setupCodeMirror() {
CodeMirror.commands.autocomplete = function(cm) {
cm.showHint({
hint: CodeMirror.hint.anyword,
container: showHintContainer
});
};
//
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
mode: 'shell',
theme: 'default',
lineWrapping: true,
lineNumbers: true,
extraKeys: {
"Ctrl-Space": "autocomplete"
}
});
$("#fullscreenButton").click(function(event) {
$("#main-container").toggleFullScreen();
});
$(document).bind("fullscreenchange", function() {
var fullScreenState = $(document).fullScreen() ? 'on' : 'off';
if (fullScreenState === 'on') {
showHintContainer = $("#main-container").get(0);
} else {
showHintContainer = document.body;
}
});
}
// init layout
$('.myDiv').layout({
resizeWhileDragging: true,
resizable: true,
east: {
size: 800
},
onload_end: function() {
setupCodeMirror();
}
});