我想使用innerHTML动态地将一些javascript代码放在DIV元素中。为此,我在页面上创建了一个DIV对象和两个按钮。第一个按钮,当按下时应在DIV元素中插入一些javascript代码,另一个函数应该利用该代码执行一些指令。
我从这种方法开始:
<html>
<head><title>Javascript Using innerHTML</title>
<script type="text/javascript">
var code="<script type='text/javascript'>\nfunction msgbox(msg){\nalert(msg);\n}\n</script>";
function setcode(obj) {
obj.innerHTML=code;
}
</script>
</head>
<body>
<div id="hello">
</div>
<button onclick='setcode(document.getElementById("hello"))'>SET</button>
<button onclick='msgbox("what up man?!");'>CHECK</button>
</body>
</html>
由于原因蹩脚和未知,我发现使用&lt; / script&gt;在javascript字符串中立即倾向于关闭&lt; script&gt;代码,即使事物被正确包装在引号中。
总之。我稍微更改了编码,以便&lt; / script&gt;是由两个字符串组合而成,不会一起出现。
<html>
<head><title>Javascript Using innerHTML</title>
<script type="text/javascript">
var xo="</";
var code="<script type=\"text/javascript\">\nfunction msgbox(msg){\nalert(msg);\n}\nmsgbox('aha!');\n"+xo+"script>";
function setcode(obj) {
obj.innerHTML=code;
}
</script>
</head>
<body>
<div id="hello">
</div>
<button onclick='setcode(document.getElementById("hello"))'>SET</button>
<button onclick='msgbox("what up man?!");'>CHECK</button>
</body>
</html>
即使经过第二次努力,我仍然无法让事情发挥作用。单击SET按钮后,用于定义msgbox()函数的javascript代码应该已添加到DIV的innerHTML中,当按下CHECK按钮时,该代码应该已经工作并在屏幕上显示一条消息。
但是......事实并非如此。
WHYYYYYYYYYY ??????? !!!!!!!!