我正在尝试制作一个简单的程序,用于在base64中对事物进行多次编码(不是出于任何特殊原因,更多的是作为示例和实践)。我一直遇到很多麻烦,可能是因为我没有足够的(或可能有太多)咖啡。
我似乎无法弄清楚如何将我的变量(文本)重新输入到编码它的函数中,直到i
等于times
对此有任何帮助将不胜感激!
<html>
<head>
<script>
function encodeThis(text,times) {
var toEncode = text;
for (var i = 0; i < times, i++) {
btoa(toEncode);
}
document.getElementById("result").value = toEncode;
}
</script>
</head>
<body>
<b>Text to Encode</b><br/>
<input type="text" id="encode"><br/>
<b>Number of Times to Encode (Integers Only)<br/>
<input type="text" id="times">
<button type="submit" onclick="encodeThis(encode,times)">Test</button>
<br/>
<br/>
<b>Result</b><br/>
<input type="text" id="result">
</body>
</html>
我是否需要在该函数内部放置一个函数来重新输入变量?
答案 0 :(得分:1)
您需要将编码结果分配回变量。
function encodeThis(text, times) {
var toEncode = text;
for (var i = 0; i < times, i++) {
toEncode = btoa(toEncode);
}
document.getElementById("result").value = toEncode;
}
但就示例中的整体代码而言,您还需要实际从#encode
和#times
元素中获取文本,并修复for
循环中的语法错误。
所以
function encodeThis(text, times) {
var toEncode = text.value, // read the value from the encode input element
numTimes = parseInt(times.value, 10); // read the value from the times element and convert to number
for (var i = 0; i < numTimes; i++) {
toEncode = btoa(toEncode);
}
document.getElementById("result").value = toEncode;
}
<b>Text to Encode</b><br/>
<input type="text" id="encode" /><br/>
<b>Number of Times to Encode (Integers Only)</b><br/>
<input type="text" id="times" />
<button type="submit" onclick="encodeThis(encode,times)">Test</button>
<br/>
<br/>
<b>Result</b><br/>
<input type="text" id="result">