【问题标题】:JavaScript: How can I get data for the function from the URL? [duplicate]JavaScript:如何从 URL 获取函数的数据? [复制]
【发布时间】:2017-10-12 22:36:56
【问题描述】:

我两天前开始学习 JS。 我下载了一个代数计算器并将其插入到我的网页中。以下是完整代码:

<!doctype html>
<html>
  <head>

    <div style="width:100%;">
        <textarea id="output1" name="terminal" rows="4" cols="80" style="width:100%;"></textarea>
        <input name="execute" value="&#x25B6;" onclick="execute(1);" type="button">
    </div>

    <script src="javascripts/jquery.min.js"></script>
    <script src="dist/latest-stable/algebrite.bundle-for-browser.js"></script>
    <script type="text/javascript" language="javascript">


    function execute (whichTerminal) {
        var sandbox = $('sandbox');
        var jsResult = $('jsResult');
        try {
            var textToBeExecuted = 'factor(3+3)';
            var result;
            if (/Algebrite\.[a-z]/.test(textToBeExecuted) || /;[ \t]*$/.test(textToBeExecuted)) {
                result = eval(textToBeExecuted);
            }
            else {
                result = Algebrite.run(textToBeExecuted);
            }

            //alert(result);
            $('#output' + whichTerminal).val(result)
        }
        catch (err) {
            var errDesc = err;
            errorBox.update('<h4>Error!<\/h4><code>' + errDesc + '<\/code>' );
            errorBox.show();
        }
    }

  </script>

脚本返回 3+3 或 6 (var textToBeExecuted = 'factor(3+3)') 的素数,但我需要计算从 URL 中获取的表达式(例如:/?input=3%B54 表示 3+4 并返回 7)。我怎样才能做到这一点?请帮忙!

【问题讨论】:

  • 也许你应该从更简单的开始?
  • 打开浏览器控制台。 console.log(location); 你可以看一下。你肯定会想要location.search

标签: javascript


【解决方案1】:

// 试试这段代码。 URL 中的 Parameter 需要添加为 ?expression=1+1 // 代码也可以根据需要轻松调整。

<!DOCTYPE html>
<html lang = "en">
<body>
<script>
     var decodedString = decodeURIComponent(window.location.search.split("expression=")[1]);
     console.log(decodedString);
     if(decodedString.split('\+').length > 1 && decodedString.split('\+').length < 3){
        var exp = decodedString.split('\+');
        var result = parseInt(exp[0]) + parseInt(exp[1]);
        alert(decodedString + " = " + result);
     }
     else if(decodedString.split('\-').length > 1 && decodedString.split('\-').length < 3){
        var exp = decodedString.split('\-');
        var result = parseInt(exp[0]) - parseInt(exp[1]);
        alert(decodedString + " = " + result);
     }
     else if(decodedString.split('\*').length > 1 && decodedString.split('\*').length < 3){
        var exp = decodedString.split('\*');
        var result = parseInt(exp[0]) * parseInt(exp[1]);
        alert(decodedString + " = " + result);
     }
     else if(decodedString.split('\/').length > 1 && decodedString.split('\/').length < 3){
        var exp = decodedString.split('\/');
        var result = parseInt(exp[0]) / parseInt(exp[1]);
        alert(decodedString + " = " + result);
     }
     else{
        console.log("Not a valid operator (Operator Supported : +-*/) found or more than 1 operator found in expression.");
     }
    </script>
</body>
</html>

【讨论】:

    猜你喜欢
    • 2012-03-31
    • 2017-09-14
    • 2021-08-16
    • 2012-07-19
    • 1970-01-01
    • 2018-10-28
    • 2019-06-20
    • 2012-09-17
    • 1970-01-01
    相关资源
    最近更新 更多