JavaScript:如何从 URL 获取函数的数据? [复制]

Posted

技术标签:

【中文标题】JavaScript:如何从 URL 获取函数的数据? [复制]【英文标题】:JavaScript: How can I get data for the function from the URL? [duplicate] 【发布时间】: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 【参考方案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>

【讨论】:

以上是关于JavaScript:如何从 URL 获取函数的数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Javascript 中的 url 获取 #pg= 值? [复制]

使用 PHP 从 URL 获取 YouTube 视频 ID

如何从 url 获取 youtube 视频 ID

如何使用 javascript 从网页中获取所有图像 url?

如何从 JavaScript 中的 URL 获取 JSON?

如何从javascript中的url获取id? [复制]