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="▶" 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= 值? [复制]
如何使用 javascript 从网页中获取所有图像 url?