Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取编辑器的值_Javascript_Monaco Editor - Fatal编程技术网

Javascript 获取编辑器的值

Javascript 获取编辑器的值,javascript,monaco-editor,Javascript,Monaco Editor,微软最近公开了他们的摩纳哥编辑器(类似于ace/codemirror) 我已经在浏览器中启动并运行了它,但仍然不知道如何获取编辑器的当前文本,就像我想保存它一样 例如: <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="te

微软最近公开了他们的摩纳哥编辑器(类似于ace/codemirror)

我已经在浏览器中启动并运行了它,但仍然不知道如何获取编辑器的当前文本,就像我想保存它一样

例如:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
</head>
<body>

<div id="container" style="width:800px;height:600px;border:1px solid grey"></div>

<script src="monaco-editor/min/vs/loader.js"></script>
<script>
    require.config({ paths: { 'vs': 'monaco-editor/min/vs' }});
    require(['vs/editor/editor.main'], function() {
        var editor = monaco.editor.create(document.getElementById('container'),                 {
            value: [
                'function x() {',
                '\tconsole.log("Hello world!");',
                '}'
            ].join('\n'),
            language: 'javascript'
        });
    });

    function save() {
       // how do I get the value/code inside the editor?
       var value = "";
       saveValueSomewhere(value);     
    }
</script>
</body>
</html>

require.config({path:{'vs':'monaco editor/min/vs'}});
require(['vs/editor/editor.main'],function()){
var editor=monaco.editor.create(document.getElementById('container'){
价值:[
'函数x(){',
“\t解决方案.log(“你好,世界!”);”,
'}'
].join('\n'),
语言:“javascript”
});
});
函数save(){
//如何在编辑器中获取值/代码?
var值=”;
saveValueSomewhere(value);
}

对我来说,这个
窗口.编辑器.getValue()
不起作用,但下面的代码起作用了

<div id="container" style="width:950px;height:700px;"></div>
<script src="./monaco-editor/dev/vs/loader.js"></script>
<script>
    require.config({ paths: { 'vs': 'monaco-editor/min/vs' }});
    require(['vs/editor/editor.main'], function() {
        var editor = monaco.editor.create(document.getElementById('container'), {
            value: [
                'print "Hello World!"',
                '# python'
            ].join('\n'),
            language: 'python',
            theme: "vs-dark"
        });

        function saveI() 
        {
            getVal = editor.getValue()
            // get the value of the data
            alert(getVal)
        }
        document.getElementById('container').onclick = saveI;

    });
    // Themes: vs-dark , hc-black
    // language: text/html , javascript
</script>

require.config({path:{'vs':'monaco editor/min/vs'}});
require(['vs/editor/editor.main'],function()){
var editor=monaco.editor.create(document.getElementById('container'){
价值:[
'打印“你好,世界!”,
"蟒蛇"
].join('\n'),
语言:“python”,
主题:“vs黑暗”
});
函数saveI()
{
getVal=editor.getValue()
//获取数据的值
警报(getVal)
}
document.getElementById('container')。onclick=saveI;
});
//主题:vs黑色,hc黑色
//语言:text/html、javascript

您可以将“container”更改为“htmlButton”,然后在
savi()
函数中使用jQuery ajax保存代码。

编辑器和模型都支持获取以下内容:

var editor = monaco.editor.create(...);
var text = editor.getValue();
因此,只要保留对编辑器或模型的引用,就可以查询内容:

var editor = monaco.editor.create(...);
var text = editor.getValue();
或在模型的情况下:

var model = monaco.editor.createModel(...);
var text = model.getValue();
如果您有差异编辑器,则无法直接在编辑器上访问文本,但可以在各个模型上访问文本(即通过):

或通过不同的编辑(和):


如果您对文本的一部分感兴趣,该模型还支持在指定范围内提供文本,并由起始列和结束列以及行号分隔,例如:

var editor = monaco.editor.create(...);
var model = editor.getModel();
var partOfTheText = model.getValueInRange({
  startLineNumber: 1,
  startColumn: 2,

  endLineNumber: 3,
  endColumn: 10,
})

如果编辑器内容无效(linter/语法错误),有没有办法出错?这对我不起作用
var originalText = diffEditor.getModifiedEditor().getValue();
var modifiedText = diffEditor.getOriginalEditor().getValue();
var editor = monaco.editor.create(...);
var model = editor.getModel();
var partOfTheText = model.getValueInRange({
  startLineNumber: 1,
  startColumn: 2,

  endLineNumber: 3,
  endColumn: 10,
})