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

2016-02-19 10:25 8 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的使用ajax加载的页面中包含的javascript的解决方法,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - Web开发 】

1、
在需要加载的页面中添加一个iframe,如下

代码如下:

iframe style="display:none" onload="javascript: close_ticket_onload()"/iframe

onload中添加你所要调用的函数,如果加载的页面在弹出层中,此函数需要放在弹出此层的父页面!

2、
如果使用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函数的使用 

简介:等你需要动态创建语句的时候,你将会发现它非常独特的作用,上网看了半天,找到些零散的内容,想来也算非常全面的了,全部把它收集起来放在这里以备后用,也供大家讨论学习使用。

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_namespan id="checkInfo" style="display:none"/spaninput type=button name=checkuser value="检测用户是否存

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


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

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

来源:https://www.tulaoshi.com/n/20160219/1594546.html

延伸阅读
标签: Web开发
上网找了一些资源,才弄明白这是编码的问题,我的服务器端发送过来的数据是GB2312编码的,而AJAX把接收到的数据都当成UTF-8编码的。 网上的很多解决方法都是服务器端基于PHP、JSP等的,要改变这些的编码方式都比较简单。但是我的服务器端是用了C编写的CGI程序,用于嵌入式系统中的,所有的输出都是用了printf。 最后找到一个在linux下的头文...
标签: ASP
      开发基于Asp.Net的系统,最初使用R.a.d Treeview 2.5,经常会出现控件无法加载的情况。原以为是控件本身的问题,可后来将R.a.d Treeview升级到3.0版,还是无法解决。去Terelik官方网站看了F.A.Q,也没有提到这个问题。     后来发现,当出现控件无法加载的情况之后,只要Restart系统,或者等一会儿...
标签: 电脑入门
问题描述:QQ空间进入后,空间内容及装扮显示重叠、错位、显示不完整等异常现象。如图: 解决方案: 一、清空IE缓存; 1、清空IE缓存可以有效提高电脑访问网站的速度,清空IE缓存方法请点击这里查看; 2、优化系统性能(您可以使用QQ电脑管家、超级兔子等)。 二、退出杀毒软件、上网助手、防火墙,取消浏览器屏蔽设置; TT浏览器取消屏蔽...
标签: Web开发
此功能已进入试用一周了,都没有问题,奇怪的是今天出现了问题?? 代码如下: AjaxRequestObj.createEqStatusParameter=function() {     if (eqStatusArray.length 1) {         return;     }     var paramNameArray = new Ar...
标签: windows10
Win10应用加载失败的解决方法   1、以管理员身份打开运行提示窗口并输入Powershell回车(可在Cortana搜索栏、运行和任务管理器中实现) 2、输入如下命令后回车Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)AppXManifest.xml"} 3、耐心等...

经验教程

176

收藏

6
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部