我不知道如何在此代码中拆分变量,因为它是一个字符串,所以我可以在文本框输入中输入:document.body.style.backgroundColor =" red" ,或只是颜色="红色"。我是否需要在某些时候使用regEX作为报价,或者如果不可能,我怎么能在没有报价的情况下使用它?
<html>
<body>
<script>
var textbox = document.createElement("INPUT");
textbox.setAttribute("type", "text");
textbox.setAttribute("value", code);
document.body.appendChild(textbox);
var color;
var code;
setInterval(function () {
var color = y+textbox.value;
code = textbox.value; // the code does not process in the text box at all
y=code.split("=");
document.body.style.[y]=color;
console.log(color);
}, 100);
</script>
</body>
</html>
答案 0 :(得分:1)
好吧,就像我理解它一样,你希望文本框中的文本作为代码运行。您应该使用eval()函数,该函数接受一个字符串并将其作为代码进行处理/运行,因为我听说这是非常不安全的(代码注入攻击),如果您不知道,建议不要使用它对于certian,它可以带给您的网站/服务器的风险。 例如:
var string = "alert('hello');";
eval(string);
答案 1 :(得分:1)
我认为您的问题在于document.body.style.[y]=color
行。您似乎将拆分字符串包装到数组中,然后尝试将其用作标识符。
答案 2 :(得分:1)
1.创建<input>
。并为访问提供 ID 。
function createInput() {
var input = document.createElement("input");
input.setAttribute("type", "text");
input.id = "myInput";
input.value = "color=red"; // or "document.body.style.backgroundColor=red"
document.body.appendChild(input);
}
2.设置<body>
的背景颜色。
function setBgColor() {
var el = document.getElementById('myInput');
var parts = el.value.split("=");
var color = parts[1];
document.body.style.backgroundColor = color;
}
注意:
var str = "color=red";
var res = str.split("=");
//res is an array "["color", "red"]
//the second value in the array is res[1], which is the color
使用 setInterval :
setInterval(function() {
f();
}, interval);