代码学堂(uxuew.cn)提供付费解决PHP WEB开发等技术服务,如果需要请 点击加我QQ:1662935793.
>web前端 > ajax技巧 > ajax加载页面中包含的js代码不执行的几种解决方案

ajax加载页面中包含的js代码不执行的几种解决方案

ajax技巧 围观5349次 更新日期:2017-07-18 13:44:57 留下足迹

1、【使用iframe】
在需要加载的页面中添加一个iframe,代码如下:
  1. <iframe style="display:none" onload="javascript: close_ticket_onload()"></iframe>
onload中添加你所要调用的函数,如果加载的页面在弹出层中,此函数需要放在弹出此层的父页面!

2、【使用eval函数】
如果使用innerHTML填充XMLHttp取得的数据。如:xxx.innerHTML=XMLHttp取得的数据
这样是不会执行JS,添加eval方法就ok了:如:xxx.innerHTML=eval(返XMLHttp取得的数据);

以下是补充内容:
举例:用Microsoft.XMLHttp获取数据后,数据为alert('测试')
xxx.innerHTML=返回的数据(也就是alert('测试')),是不会执行的,因为javascript已经在页面加载的时候执行完了.在往里面加代码,他就不会再执行了.

上面的情况可以使用js  eval函数解决:
xxx.innerHTML=eval(返回的数据); 如:alert('测试');

【eval()函数说明】
这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
举个小例子:
var the_unevaled_answer = "2 + 3";
var the_evaled_answer = eval("2 + 3");
alert("the un-evaled answer is " + the_unevaled_answer + " and the evaled answer is " + the_evaled_answer);
如果你运行这段eval程序, 你将会看到在JavaScript里字符串"2 + 3"实际上被执行了。
所以当你把the_evaled_answer的值设成 eval("2 + 3")时, JavaScript将会明白并把2和3的和返回给the_evaled_answer。
这个看起来似乎有点傻,其实可以做出很有趣的事。比如使用eval你可以根据用户的输入直接创建函数。 

转载请注明:代码学堂>web前端 > ajax技巧 > ajax加载页面中包含的js代码不执行的几种解决方案

喜欢 (951) or 分享 (54)
随机文章