Я попытался создать интерпретатор python с использованием skulpt, но столкнулся с неожиданной ошибкой. Я хочу использовать его на своем сайте

#javascript #python #html #jquery #skulpt

#javascript #python #HTML #jquery #skulpt

Вопрос:

Итак, я пытаюсь создать интерпретатор python на своем веб-сайте, используя skulpt. Но я столкнулся с некоторыми проблемами и не знаю, как их исправить. Ошибка, вероятно, будет в js-скрипте, который показан ниже

Ошибка: Uncaught ReferenceError: Sk is not defined at runit (portfolio:33) at HTMLButtonElement.onclick (portfolio:57)

HTML — КОД:

 <html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js" type="text/javascript"></script> 
<script src="http://www.skulpt.org/js/skulpt.min.js" type="text/javascript"></script> 
<script src="http://www.skulpt.org/js/skulpt-stdlib.js" type="text/javascript"></script> 

</head> 

<body> 

<script type="text/javascript"> 

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];
}

function runit() { 
   var prog = document.getElementById("yourcode").value; 
   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> 

<h3>Try This</h3> 
<form> 
<textarea id="yourcode" cols="40" rows="10">import turtle

t = turtle.Turtle()
t.forward(100)

print "Hello World" 
</textarea><br /> 
<button type="button" onclick="runit()">Run</button> 
</form> 
<pre id="output" ></pre> 
<!-- If you want turtle graphics include a canvas -->
<div id="mycanvas"></div> 

</body> 

</html> 
 

У меня закончились идеи, как это исправить. Вот документация> https://skulpt.org/using.html

Ответ №1:

Просто удалите www. URL-адреса из скрипта.

Вы должны использовать http://skulpt.org/js/skulpt.min.js вместо http://www.skulpt.org/js/skulpt.min.js