如何将DOM的值和属性放在文本框中?

时间:2015-08-28 18:41:24

标签: javascript string input

我不知道如何在此代码中拆分变量,因为它是一个字符串,所以我可以在文本框输入中输入: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>

3 个答案:

答案 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);

Example