使用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('内容仅是测试,所以写简单点')

时间: 2024-09-23 09:58:19

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

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

1.[使用iframe] 在需要加载的页面中添加一个iframe,如下 复制代码 代码如下: <iframe style="display:none" onload="javascript: close_ticket_onload()"></iframe> onload中添加你所要调用的函数,如果加载的页面在弹出层中,此函数需要放在弹出此层的父页面! 2.[使用eval] 如果使用innerHTML填充XMLHttp取得的数据.如:xxx.i

《jQuery、jQuery UI及jQuery Mobile技巧与示例》——9.4 技巧:使用AJAX加载外部页面

9.4 技巧:使用AJAX加载外部页面 至此,示例加载的页面都是已经存在于HTML中的.它们都是把哈希标记和已经存在于DOM树中的id关联在一起. 随着网站的扩大,在一个HTML中加载所有的页面变得不太可能了.使用jQuery Mobile能很容易地创建指向其他页面的链接,这和普通Web应用程序中的做法是一样的.如代码清单9-4所示,链接是一模一样的. 不同之处在于jQuery Mobile处理链接的方式.当链接地址指向的域和当前页面的域相同,默认是使用AJAX请求加载的.可以通过特定的设置关掉

jsp使用ajax加载子页面,使用ajax提交子页面的表单没反应,提交按钮点击不了

问题描述 jsp使用ajax加载子页面,使用ajax提交子页面的表单没反应,提交按钮点击不了 子页面相关js代码如下: $(function(){ $("#chaxun_btn").click(function(){ var rightitem=$("#chaxun_btn").parent("right-item"); var url=$("#chaxun_btn").attr("url"); $.aja

Ajax加载外部页面弹出层效果实现方法_AJAX相关

本文实例讲述了Ajax加载外部页面弹出层效果实现方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

Ajax加载外部页面弹出层效果实现方法

本文实例讲述了Ajax加载外部页面弹出层效果实现方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

Angular懒加载机制刷新后无法回退的快速解决方法_AngularJS

今天在项目中遇到一个很奇怪的问题,使用oclazyload懒加载angular的模块,刷新页面后,单击回退按钮无法返回上一个页面.估计是使用懒加载机制销毁了angular内部的state关联,导致无法回到上一个state(单击回退按钮 ui-routre的 $stateChangeStart 事件都不会触发),当然这只是猜测,由于事件关系也没有去深入的探究源码. angular懒加载机制刷新后无法回退的解决方案 : 通过查看angular(ionic)的源码发现$browser这个服务上有个on

Ajax加载静态页面的例子

当手机网页过长时,可以将内容分块,用Ajax加载. 主要思路如下:将需要加载的页面存放在一个新的页面中,主要代码:   header("Access-Control-Allow-Origin: *"); header("Content-type: text/html; charset=utf-8"); echo ""; echo里面是需要加载的html. 然后在js初始化里面使用scroll函数时刻监听滚动条,判断滚动条距离顶部的距离,然后根据需

较长数据无法在Asp页面中取出的三种解决方法

较长text型数据无法在Asp页面中取出的解决办法 在Asp页面中向记录集取长text型数据时,出现如下错误现象时: Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21' Errors occurred 可有以下三种解决办法: (一)使用rs.open sql,conn,1,3方式打开记录集 (二)将该列放在第一列取出,比如comment里存放有较长的text内容,取记录集内容的时候,先来个comment=rs("comment&quo

JSP加载JS文件不起作用的有效解决方法_JSP编程

目录结构:jsp导入jquery文件,老是不起作用,原因在于: 复制代码 代码如下: <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> 其不能访问/WEB-INF/目录下的文件,因此需要将加载的js文件其放倒webapp目录.  test.html: 复制代码 代码如下: <%@ page language="java" %&g