我想创建一个JavaScript命令执行.. 我的意思是,如果我使用输入法构建页面,那么,在JavaScript控制台中执行该输入方法的值,然后,应该将该执行的结果插入HTML标记中: HTML:
<input id="commandInsertion"/>
<input type="Submit" onclick="doCommand()">
<p id="result"></p>
JavaScript的:
var doCommand = function(x) {
// The command should be something like this
Execute(x); // Imaginary Function
document.getElementById('result').innerHTML = ResultOf(x);
// ResultOf() is also an imaginary function
};
doCommand
是一个执行命令的函数,然后将其打印到文档中
答案 0 :(得分:2)
简单。听说eval
?这是一个有趣而危险的功能。它允许您在运行时评估代码。这是一个例子:
$('#calc').on('input', function() {
try {
$('#out').val(eval($('#calc').val()));
} catch (e) {
$('#out').val('ERROR!')
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
Input:
<br>
<input id='calc'>
<br>Output:
<br>
<input id='out'>
&#13;
这很简单,但是评估也很危险。它可以让攻击者做任何你能做的事情。您可能想要阅读:
Restricting eval() to a narrow scope
所以这里是您想要的代码:
var doCommand = function() {
// The command should be something like this
document.getElementById('output').innerHTML = eval(document.getElementById('commandInsertion').value);
};
&#13;
<input id="commandInsertion" />
<div id="output"></div>
<br>
<br>
<input type="Submit" onclick="doCommand()">
&#13;
答案 1 :(得分:0)
我从你的解释中得知你需要一些如下的东西:
function getInsertedValue() {
var txt = document.getElementById('commandInsertion').value;
updateElem(txt);
}
function updateElem(insertedTxt) {
document.getElementById("updatedTxt").innerHTML = eval(insertedTxt);
}
<div>
<input type="text" id="commandInsertion" />
<span id="updatedTxt"></span>
<input type="Submit" onclick="getInsertedValue()">
</div>
答案 2 :(得分:-1)