HTML動態公式計算

在屬性動態變化,公式動態變化的情況下使用:

<html>
<head>
</head>
<body>
  <script type="text/javascript">
    var tJSON = {
      長: 12,
      高: 34,
      寬: 0.34,
      密度: 3.45,
      體積: 423,
      速度: 4.34,
      重量: 234,
      公式結果: 0
    }



    function DoCal() {
      var inStr = document.getElementById("TA").value;//函數
      if (!inStr || inStr.length == 0) {
        alert("請輸入公式");
        return;
      }
      var tArra = [];
      tArra.push(" var ")
      for (var key in tJSON) {
        tArra.push(key);
        tArra.push("=this.")
        tArra.push(key);
        tArra.push(",");
      }
      tArra.splice(tArra.length - 1, 1);
      tArra.push(";\r\n return ");
      tArra.push(inStr);
      tArra.push(";");
      var funcBody = tArra.join("");

      try {
        var fun = new Function(funcBody);
        var rtValue = fun.call(tJSON);
        tJSON.公式結果 = rtValue;
        alert(rtValue);
      }
      catch (e) {
        alert(e.message);
      }
    }
  </script>
  可用屬性:<br />
  {<br />
  長: 12,<br />
  高: 34,<br />
  寬: 0.34,<br />
  密度: 3.45,<br />
  體積: 423,<br />
  速度: 4.34,<br />
  重量: 234,<br />
  }<br />
  計算公式<br />
  <textarea id="TA">長*寬*高</textarea>
  <br />
  <button onclick="DoCal()">計算</button>
</body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章