令人沮丧的innerHTML问题

时间:2015-11-04 07:30:15

标签: javascript innerhtml

背景

我想使用innerHTML动态地将一些javascript代码放在DIV元素中。为此,我在页面上创建了一个DIV对象和两个按钮。第一个按钮,当按下时应在DIV元素中插入一些javascript代码,另一个函数应该利用该代码执行一些指令。

努力1

我从这种方法开始:

<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">
    &nbsp;
</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;是由两个字符串组合而成,不会一起出现。

努力2

<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">
    &nbsp;
</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 ??????? !!!!!!!!

0 个答案:

没有答案