使用ajax加载的页面中包含的javascript的解决方法

 更新时间:2010年09月03日 23:53:04   作者:  
使用ajax加载的页面中包含的javascript的两个解决方法, 需要的朋友可以参考下。
1、【使用iframe】
在需要加载的页面中添加一个iframe,如下

复制代码 代码如下:

<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已经在页面加载的时候执行完了.在往里面加代码,他就不会再执行了.

开始的时候没找到方法,只能用<iframe>来代替.但其实我觉得已经不是我原来想要的"不刷新更新数据"的效果了..不过还是能用.

后来还是没有放弃,再到google搜索一次,居然搜索出CSDN上的一篇贴子
xxx.innerHTML=eval(返回的数据); 如:alert('测试')
一试居然成功了,真是高兴啊..真是太感谢这位高手了
于是搜索了关于Eval的用法

Javascript中Eval函数的使用 

简介:等你需要动态创建语句的时候,你将会发现它非常独特的作用,上网看了半天,找到些零散的内容,想来也算非常全面的了,全部把它收集起来放在这里以备后用,也供大家讨论学习使用。
【eval()函数】
JavaScript有许多小窍门来使编程更加容易。
其中之一就是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你可以根据用户的输入直接创建函数。


附上测试代码:
复制代码 代码如下:

<script language=javascript>
function check_user_exists(form){
u_name=form.u_name.value;
if (u_name==null||u_name==''){
alert("请您输入用户名");
return false;
}
infoBoard=document.getElementById("checkInfo");
infoBoard.innerText='查询中...';
myurl="http://localhost/ajax/form1.asp"
retCode=openUrl(myurl);
infoBoard.innerHTML=eval(retCode);

return;
}

function openUrl(url){
var objxml=new ActiveXObject("Microsoft.XMLHttp")
objxml.open("GET",url,false);
objxml.send();
retInfo=objxml.responseText;
if (objxml.status=="200"){
return retInfo;
}
else{
return "-2";
}
}
</script>

<form name=form1 action="XXXX.asp" method="post">
<input type=text name=u_name><span id="checkInfo" style="display:none"></span><input type=button name=checkuser value="检测用户是否存

在" onClick="check_user_exists(this.form);">
</form>


form1.asp的内容为
复制代码 代码如下:

alert('内容仅是测试,所以写简单点')

相关文章

  • asp.net+Ajax 文本文件静态分页实现代码

    asp.net+Ajax 文本文件静态分页实现代码

    代码还是很浅显易懂的,呵呵因为我也不会写高深的代码。重要的我们都要动手去实践。菜鸟们多多努力哦。做完我这个例子级会收获很多哦。
    2010-05-05
  • 解决ajax跨域请求数据cookie丢失问题

    解决ajax跨域请求数据cookie丢失问题

    本文主要是从前端jquery和服务端php为例,分别使用实例解决ajax跨域请求数据cookie丢失问题,推荐给有相同需求的小伙伴们。
    2015-03-03
  • 双层ajax嵌套(可多层)用法实例

    双层ajax嵌套(可多层)用法实例

    这篇文章主要介绍了双层ajax嵌套(可多层)用法,实例分析了Ajax嵌套的相关使用技巧,可实现多层嵌套的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • ajax跨域访问报错501的解决方法

    ajax跨域访问报错501的解决方法

    这篇文章主要为大家详细介绍了ajax跨域访问报错501的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Ajax入门学习教程(一)

    Ajax入门学习教程(一)

    AJAX(Asynchronous JavaScript And XML)翻译成中文就是“异步Javascript和XML”。下面简单给大家介绍了ajax入门学习知识,需要的的朋友参考下吧
    2017-02-02
  • ajax结合豆瓣搜索结果进行分页完整代码

    ajax结合豆瓣搜索结果进行分页完整代码

    这篇文章主要为大家详细介绍了ajax结合豆瓣搜索结果进行分页完整代码,具有一定的参考价值,感兴趣的朋友可以参考一下
    2016-10-10
  • JSP+Ajax 添加、删除多选框

    JSP+Ajax 添加、删除多选框

    这篇文章主要介绍了JSP+Ajax 添加、删除多选框
    2006-10-10
  • 利用H5特性FormData实现不刷新文件上传

    利用H5特性FormData实现不刷新文件上传

    之前朋友说的不刷新上传文件。最暴力的解决方案就是上网上搜各种JS库,附带多图上传,预览,甚至是图片处理等特技。下面看小编给大家分享的利用H5特性FormData实现不刷新文件上传,非常实用,小伙伴一起来看看吧
    2015-09-09
  • ajax实现上传图片保存到后台并读取的实例

    ajax实现上传图片保存到后台并读取的实例

    下面小编就为大家分享一篇ajax实现上传图片保存到后台并读取的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 使用对象封装ajax重复调用的方法

    使用对象封装ajax重复调用的方法

    在项目中经常用到AJAX调用远程数据,每一次调用,都得写一个ajax方法,这就造成了重复代码过多,可读性也不够强,所以,我一般都是封装起来,需要的时候调用
    2016-01-01

最新评论