问题描述
|
我想将JavaScript代码存储在javascript变量中。
为了清楚说明,请考虑以下示例:
<html>
<body>
<script type=\"text/javascript\">
<!--
function toggle_visibility(id) {
var e = document.getElementById(id);
if(e.style.display == \'block\')
e.style.display = \'none\';
else
e.style.display = \'block\';
}
//-->
</script>
<a onclick=\"toggle_visibility(\'1\');toggle_visibility(\'2\');\">Click here to toggle visibility of element </a>
<div id=\"1\">This is 1</div>
<div id=\"2\">This is 2</div>
<script type=\"text/javascript\">
//document.getElementById(\'2\').style.display=\'none\';
</script>
</body>
</html>
现在,假设所有这些代码都以字符串或其他形式存在于变量中。 (我想这样做是因为我正在将文件导出到另一个应复制代码的html页面。)
我使用了所有变量,例如
在\'之前使用\\,依此类推。指http://www.w3schools.com/js/js_special_characters.asp
解决方法
像这样存储:
var myFunc = function(){ do stuff }
像这样运行:myFunc();
, 要解释JS代码,您需要使用JS函数eval()
var code = \"alert(\'Ok\')\";
eval(code);
这就是为什么使用eval()
是一个坏主意的原因:
为什么使用JavaScript eval函数是个坏主意?
, 也许尝试这样的事情:
var quoteElement = document.getElementById(\'2\');
var quote = quoteElement.value;
// or even ..
var quote = document.getElementById(\'2\').value;
现在,您将在变量中包含元素的文本值。