У меня есть 2 компонента codemirror на странице, и когда вы нажимаете кнопку «Выполнить», я хочу, чтобы он запускал код только над кнопкой.
У меня проблема в том, что он запускает только последний компонент codemirror и не запускает отдельный код так, как мне нравится.
Есть ли какой-либо способ в функции кнопки onClick ниже, чтобы установить это динамически?
Компоненты Codemirror с кнопками onClick:
<code><div id="content">
<section class="method first-of-group" id="intro">
<div class="method-area method-area-expanded">
<div class="method-copy">
<h1 class="lesson-name">python title</h1>
<div class="method-example">
<div id="side-view">
<div id="side-left">
<textarea id="yourcode" cols="40" rows="10">
my_name = "Sir Python"
print("Hello and welcome " + my_name + "!")
</textarea
>
<script type="text/javascript">
// insert codemirror
var myCodeMirror = CodeMirror.fromTextArea(yourcode, {
lineNumbers: true,
mode: "python"
});
</script>
</div>
<br />
<div id="side-right">
<div id="console">
<pre id="output">
<! - Если вы хотите, чтобы графика черепахи включала холст ->
заголовок питона
<! - Если вы хотите, чтобы графика черепахи включала холст ->
Вот функция onClick:
<script type="text/javascript">
// output functions are configurable. This one just appends some text
// to a pre element.
function outf(text) {
var mypre = document.getElementById("output");
mypre.innerHTML = mypre.innerHTML + text;
}
function builtinRead(x) {
if (
Sk.builtinFiles === undefined ||
Sk.builtinFiles["files"][x] === undefined
)
throw "File not found: '" + x + "'";
return Sk.builtinFiles["files"][x];
}
// Here's everything you need to run a python program in skulpt
// grab the code from your textarea
// get a reference to your pre element for output
// configure the output function
// call Sk.importMainWithBody()
function runit() {
var prog = myCodeMirror.getValue();
var mypre = document.getElementById("output");
mypre.innerHTML = "";
Sk.pre = "output";
Sk.configure({ output: outf, read: builtinRead });
(Sk.TurtleGraphics || (Sk.TurtleGraphics = {})).target = "mycanvas";
var myPromise = Sk.misceval.asyncToPromise(function() {
return Sk.importMainWithBody("<stdin>", false, prog, true);
});
myPromise.then(
function(mod) {
console.log("success");
]
},
function(err) {
console.log(err.toString());
}
);
}
</script>