永发信息网

innerHTML无法执行javascript代码

答案:3  悬赏:40  手机版
解决时间 2021-02-26 04:03
  • 提问者网友:自食苦果
  • 2021-02-26 00:04
asp页面这么写的<br>Response.Write(escape(&quot;&lt;Script type=&quot;&quot;text/javascript&quot;&quot; defer=&quot;&quot;defer&quot;&quot;&gt;alert('请重新输入!');&lt;/Script&gt;&quot;))<br>调用的是这么写的<br> xmls.send(content);<br> var EndCHK=document.getElementById(&quot;main-content&quot;);<br> EndCHK=&quot;&quot;;<br> EndCHK=unescape(xmls.responseText);<br> Main.innerHTML=EndCHK;<br>HTML代码中是&lt;div id=Main&gt;&lt;div&gt;<br>这个alert没有执行。应该什么写呢?<br>Main.innerHTML=EndCHK;是用来显示内容的,我在这句上加了eval(EndCHK);之后提示语法错误。大哥不行呢。呵。。加油<br>是有javascript代码和HTML代码。应该什么分离呢大哥<br>js只用来提示操作的结果而以。可以说是知道js的内容的。
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-02-26 00:20
调用的可以这么写:
xmls.send(content);
var EndCHK=document.getElementById("main-content");
EndCHK="";
EndCHK=unescape(xmls.responseText);
eval(EndCHK);

补充:
如果EndCHK里面的内容是HTML,那么应该用Main.innerHTML=EndCHK;语句显示内容。但是里面的JS代码不会被执行。

如果EndCHK里面的内容是JS,那么就需要eval(EndCHK)才能执行其代码,但是必须全部是js代码,否则会语法错误。

如果里面有HTML代码和JS,那么应该分离出来分开处理,否则只有用iframe来调用才可能都执行。

补充:
分离是理论上的,事实上可能会非常复杂,相当于编写一个浏览器了。

但是如果最简单的情况,比如只有一段js代码,而且js代码的格式大致知道,那么可以使用正则表达式提取js代码。
全部回答
  • 1楼网友:山有枢
  • 2021-02-26 02:22
为什么不直接用js呢
  • 2楼网友:往事隔山水
  • 2021-02-26 01:31
建议你去学一下ajax。 你这个能执行就怪了。innerhtml插进去的代码,就只是当普通的html来执行,js解释器不会再对里面的js脚本进行解释。 你这个,用ajax来做再好不过了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯