使用ajax加載的頁(yè)面中包含的javascript的解決方法
更新時(shí)間:2010年09月03日 23:53:04 作者:
使用ajax加載的頁(yè)面中包含的javascript的兩個(gè)解決方法, 需要的朋友可以參考下。
1、【使用iframe】
在需要加載的頁(yè)面中添加一個(gè)iframe,如下
<iframe style="display:none" onload="javascript: close_ticket_onload()"></iframe>
onload中添加你所要調(diào)用的函數(shù),如果加載的頁(yè)面在彈出層中,此函數(shù)需要放在彈出此層的父頁(yè)面!
2、【使用eval】
如果使用innerHTML填充XMLHttp取得的數(shù)據(jù)。如:xxx.innerHTML=XMLHttp取得的數(shù)據(jù)
這樣是不會(huì)執(zhí)行JS,添加eval方法就ok了:如:xxx.innerHTML=eval(返XMLHttp取得的數(shù)據(jù));
以下是補(bǔ)充內(nèi)容:
舉例:用Microsoft.XMLHttp獲取數(shù)據(jù)后,數(shù)據(jù)為alert('測(cè)試')
xxx.innerHTML=返回的數(shù)據(jù)(也就是alert('測(cè)試'))
是不會(huì)執(zhí)行的,因?yàn)閖avascript已經(jīng)在頁(yè)面加載的時(shí)候執(zhí)行完了.在往里面加代碼,他就不會(huì)再執(zhí)行了.
開(kāi)始的時(shí)候沒(méi)找到方法,只能用<iframe>來(lái)代替.但其實(shí)我覺(jué)得已經(jīng)不是我原來(lái)想要的"不刷新更新數(shù)據(jù)"的效果了..不過(guò)還是能用.
后來(lái)還是沒(méi)有放棄,再到google搜索一次,居然搜索出CSDN上的一篇貼子
xxx.innerHTML=eval(返回的數(shù)據(jù)); 如:alert('測(cè)試')
一試居然成功了,真是高興啊..真是太感謝這位高手了
于是搜索了關(guān)于Eval的用法
Javascript中Eval函數(shù)的使用
簡(jiǎn)介:等你需要?jiǎng)討B(tài)創(chuàng)建語(yǔ)句的時(shí)候,你將會(huì)發(fā)現(xiàn)它非常獨(dú)特的作用,上網(wǎng)看了半天,找到些零散的內(nèi)容,想來(lái)也算非常全面的了,全部把它收集起來(lái)放在這里以備后用,也供大家討論學(xué)習(xí)使用。
【eval()函數(shù)】
JavaScript有許多小竅門來(lái)使編程更加容易。
其中之一就是eval()函數(shù),這個(gè)函數(shù)可以把一個(gè)字符串當(dāng)作一個(gè)JavaScript表達(dá)式一樣去執(zhí)行它。
舉個(gè)小例子:
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);
如果你運(yùn)行這段eval程序, 你將會(huì)看到在JavaScript里字符串"2 + 3"實(shí)際上被執(zhí)行了。
所以當(dāng)你把the_evaled_answer的值設(shè)成 eval("2 + 3")時(shí), JavaScript將會(huì)明白并把2和3的和返回給the_evaled_answer。
這個(gè)看起來(lái)似乎有點(diǎn)傻,其實(shí)可以做出很有趣的事。比如使用eval你可以根據(jù)用戶的輸入直接創(chuàng)建函數(shù)。
附上測(cè)試代碼:
<script language=javascript>
function check_user_exists(form){
u_name=form.u_name.value;
if (u_name==null||u_name==''){
alert("請(qǐng)您輸入用戶名");
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="檢測(cè)用戶是否存
在" onClick="check_user_exists(this.form);">
</form>
form1.asp的內(nèi)容為
alert('內(nèi)容僅是測(cè)試,所以寫(xiě)簡(jiǎn)單點(diǎn)')
在需要加載的頁(yè)面中添加一個(gè)iframe,如下
復(fù)制代碼 代碼如下:
<iframe style="display:none" onload="javascript: close_ticket_onload()"></iframe>
onload中添加你所要調(diào)用的函數(shù),如果加載的頁(yè)面在彈出層中,此函數(shù)需要放在彈出此層的父頁(yè)面!
2、【使用eval】
如果使用innerHTML填充XMLHttp取得的數(shù)據(jù)。如:xxx.innerHTML=XMLHttp取得的數(shù)據(jù)
這樣是不會(huì)執(zhí)行JS,添加eval方法就ok了:如:xxx.innerHTML=eval(返XMLHttp取得的數(shù)據(jù));
以下是補(bǔ)充內(nèi)容:
舉例:用Microsoft.XMLHttp獲取數(shù)據(jù)后,數(shù)據(jù)為alert('測(cè)試')
xxx.innerHTML=返回的數(shù)據(jù)(也就是alert('測(cè)試'))
是不會(huì)執(zhí)行的,因?yàn)閖avascript已經(jīng)在頁(yè)面加載的時(shí)候執(zhí)行完了.在往里面加代碼,他就不會(huì)再執(zhí)行了.
開(kāi)始的時(shí)候沒(méi)找到方法,只能用<iframe>來(lái)代替.但其實(shí)我覺(jué)得已經(jīng)不是我原來(lái)想要的"不刷新更新數(shù)據(jù)"的效果了..不過(guò)還是能用.
后來(lái)還是沒(méi)有放棄,再到google搜索一次,居然搜索出CSDN上的一篇貼子
xxx.innerHTML=eval(返回的數(shù)據(jù)); 如:alert('測(cè)試')
一試居然成功了,真是高興啊..真是太感謝這位高手了
于是搜索了關(guān)于Eval的用法
Javascript中Eval函數(shù)的使用
簡(jiǎn)介:等你需要?jiǎng)討B(tài)創(chuàng)建語(yǔ)句的時(shí)候,你將會(huì)發(fā)現(xiàn)它非常獨(dú)特的作用,上網(wǎng)看了半天,找到些零散的內(nèi)容,想來(lái)也算非常全面的了,全部把它收集起來(lái)放在這里以備后用,也供大家討論學(xué)習(xí)使用。
【eval()函數(shù)】
JavaScript有許多小竅門來(lái)使編程更加容易。
其中之一就是eval()函數(shù),這個(gè)函數(shù)可以把一個(gè)字符串當(dāng)作一個(gè)JavaScript表達(dá)式一樣去執(zhí)行它。
舉個(gè)小例子:
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);
如果你運(yùn)行這段eval程序, 你將會(huì)看到在JavaScript里字符串"2 + 3"實(shí)際上被執(zhí)行了。
所以當(dāng)你把the_evaled_answer的值設(shè)成 eval("2 + 3")時(shí), JavaScript將會(huì)明白并把2和3的和返回給the_evaled_answer。
這個(gè)看起來(lái)似乎有點(diǎn)傻,其實(shí)可以做出很有趣的事。比如使用eval你可以根據(jù)用戶的輸入直接創(chuàng)建函數(shù)。
附上測(cè)試代碼:
復(fù)制代碼 代碼如下:
<script language=javascript>
function check_user_exists(form){
u_name=form.u_name.value;
if (u_name==null||u_name==''){
alert("請(qǐng)您輸入用戶名");
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="檢測(cè)用戶是否存
在" onClick="check_user_exists(this.form);">
</form>
form1.asp的內(nèi)容為
復(fù)制代碼 代碼如下:
alert('內(nèi)容僅是測(cè)試,所以寫(xiě)簡(jiǎn)單點(diǎn)')
您可能感興趣的文章:
- Ajax添加數(shù)據(jù)與刪除篇實(shí)現(xiàn)代碼
- jQuery之a(chǎn)jax刪除詳解
- jquery ajax實(shí)現(xiàn)批量刪除具體思路及代碼
- PHP+ajax 無(wú)刷新刪除數(shù)據(jù)
- Ajax方式刪除表格一行數(shù)據(jù)示例代碼
- 滑輪滾動(dòng)到頁(yè)面底部ajax加載數(shù)據(jù)配合jsonp實(shí)現(xiàn)探討
- Ajax實(shí)現(xiàn)靜態(tài)刷新頁(yè)面過(guò)程帶加載旋轉(zhuǎn)圖片
- jQuery Ajax頁(yè)面局部加載方法匯總
- 基于jquery的finkyUI插件與Ajax實(shí)現(xiàn)頁(yè)面數(shù)據(jù)加載功能
- ajax實(shí)現(xiàn)頁(yè)面加載和內(nèi)容刪除
相關(guān)文章
Ajax請(qǐng)求WebService跨域問(wèn)題的解決方案
這篇文章主要介紹了Ajax請(qǐng)求WebService跨域問(wèn)題的解決方案,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
一個(gè)簡(jiǎn)單Ajax類庫(kù)及使用方法實(shí)例分析
這篇文章主要介紹了一個(gè)簡(jiǎn)單Ajax類庫(kù)及使用方法,結(jié)合實(shí)例形式分析了ajax類庫(kù)的源碼與具體使用技巧,需要的朋友可以參考下2016-04-04
asp.net jquery+ajax異步刷新實(shí)現(xiàn)示例
異步刷新想必大家并不陌生吧,本文主要為大家介紹下asp.net jquery+ajax實(shí)現(xiàn)異步刷新過(guò)程,感興趣的朋友可以參考下2013-09-09
本人ajax留言板的源程序 不錯(cuò)的應(yīng)用js
本人ajax留言板的源程序 不錯(cuò)的應(yīng)用js...2007-09-09
springmvc 結(jié)合ajax批量新增的實(shí)現(xiàn)方法
這篇文章主要介紹了springmvc 結(jié)合ajax批量新增的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
JQuery中Ajax的Post提交在IE下中文亂碼的解決方法
在JQuery的Ajax POST請(qǐng)求中,進(jìn)行請(qǐng)求,其中的中文在后臺(tái),顯示為亂碼,在FF/Chrome中,可以正常傳遞中文,但是在IE下,則存在問(wèn)題2014-05-05
用AJAX實(shí)現(xiàn)的無(wú)刷新的分頁(yè)實(shí)現(xiàn)代碼(asp.net)
最近學(xué)習(xí)了AJAX技術(shù)。AJAX,指的是異步的Javascript和xml。它的基本原理就是頁(yè)面用Javascript發(fā)送一個(gè)異步的http請(qǐng)求到服務(wù)器,服務(wù)器返回?cái)?shù)據(jù)后,再用Javascript靜態(tài)的去更改頁(yè)面某個(gè)地方的值,而無(wú)需提交表單。2011-04-04
AJax 把拿到的后臺(tái)數(shù)據(jù)在頁(yè)面中渲染的實(shí)例
今天小編就為大家分享一篇AJax 把拿到的后臺(tái)數(shù)據(jù)在頁(yè)面中渲染的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08

