Javascript命令插入HTML

时间:2015-12-29 14:46:22

标签: javascript jquery html

我想创建一个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是一个执行命令的函数,然后将其打印到文档中

3 个答案:

答案 0 :(得分:2)

简单。听说eval?这是一个有趣而危险的功能。它允许您在运行时评估代码。这是一个例子:

&#13;
&#13;
$('#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;
&#13;
&#13;

这很简单,但是评估也很危险。它可以让攻击者做任何你能做的事情。您可能想要阅读:

Restricting eval() to a narrow scope

所以这里是您想要的代码:

&#13;
&#13;
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;
&#13;
&#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)

不仅仅是eval功能吗?

  

eval()函数计算或执行参数。

非常小心地使用它 - 它允许用户运行任何javascript命令,这是一个很大的安全风险。