使用ajax載入的頁面中包含的javascript的解決方案

來源:互聯網
上載者:User

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('內容僅是測試,所以寫簡單點')

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.