首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将textarea用于python input() to Skulpt

将textarea用于python input() to Skulpt
EN

Stack Overflow用户
提问于 2018-03-03 21:00:55
回答 1查看 1.1K关注 0票数 0

每当在Skulpt中运行Python input()函数时,我都想使用一个textarea。默认设置是使用警告框--我想使用文本区。

我尝试过让它正常工作,但是当我尝试这个例子时什么也没有发生:https://github.com/skulpt/skulpt/issues/685

其他的一切都和我想要的一样好。请帮帮忙!:D

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
<script src="js/jquery-3.2.1.min.js" type="text/javascript"></script> 
<script src="js/debugger.js" type="text/javascript"></script> 
<script src="js/skulpt.min.js" type="text/javascript"></script>
<script src="js/skulpt-stdlib.js" type="text/javascript"></script> 
<title>i dont like the alert boxes</title>
<style type="text/css" media="screen">
    #source{ 
        position: relative;
        width: 500px;
        height: 300px;
    }
    #console{ 
        position: relative;
        width: 500px;
        height: 100px;
        overflow: scroll;
    }
    body{
        background-color: whitesmoke;
    }
    #turtleCanvas{
        position: relative;
        border: 1px;
        border-color: firebrick;
        border-collapse: collapse;
        border-style: solid;
        width: 500px;
    }
</style>
<script src="js/brython/brython.js" type="text/javascript"></script>
</head>
<body onload="brython()">

<script type="text/javascript"> 
function outf(text) { 
    var mypre = document.getElementById("console"); 
    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];
}

function runit() { 
   var editor = ace.edit("source");
   var code = editor.getValue();
   document.getElementById("hiddenCode").innerHTML = code;
   var prog = document.getElementById("hiddenCode").value; 
   var mypre = document.getElementById("console"); 
   mypre.innerHTML = ''; 
   Sk.pre = "console";
   Sk.configure({output:outf, read:builtinRead}); 
   (Sk.TurtleGraphics || (Sk.TurtleGraphics = {})).target = 'turtleCanvas';
   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>   
<textarea id="hiddenCode" style="display:none;"></textarea><br /> 

<div id="source">import turtle
myName = input("who r u?")
print(myName)
t = turtle.Turtle()
t.forward(100)</div>
<button type="button" onclick="runit()">Run</button> 
    <textarea id="programInputField">some input lines</textarea>
<pre id="console">output</pre>
<div id="turtleCanvas"></div>   
<script src="js/ace/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
    var window1 = ace.edit("source");
    var window2 = ace.edit("console");
    window1.setTheme("ace/theme/textmate");
    window2.setTheme("ace/theme/twilight");
    window1.getSession().setMode("ace/mode/python");
</script>
</body>

EN

回答 1

Stack Overflow用户

发布于 2018-03-05 18:24:40

算了!这很好用,只需要更改我的文本区的id,否则我只是复制并粘贴它,然后注释掉我自己的sk.configure行……太棒了,谢谢你!:D :D

Wait for an event to occur within a function in Javascript for Skulpt

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49084382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档